爬虫学习第一天-模仿01

爬虫就是一个请求-解析-返回的过程,非常有意思。

跟着知乎大神一步步开始学习爬虫。https://zhuanlan.zhihu.com/p/29809609

从小说网站下载小说

URLbiqukan.com/

《一念永恒》小说的第一章http://www.biqukan.net/book/23326/9979822.html

首先,获取HTML的信息。

编程test2.py

import requests

if __name__ == '__main__':
    target = 'http://www.biqukan.net/book/23326/9979822.html'
    req = requests.get(url=target)
    req.encoding='GB18030'
    print(req.text) 

其中,

 req.encoding='GB18030'
是处理乱码。


运行后有:


可以和右击选择 '检查' 即可对照代码爬取是否正确(chrome)。




目标是提取正文,需要滤去一些冗余信息。第二步就是解析HTML的信息。选择 Beautiful Soup进行提取。

编程test3.py

from bs4 import BeautifulSoup
import requests
if __name__ == "__main__":
     target = 'http://www.biqukan.net/book/23326/9979822.html'
     req = requests.get(url = target)
     req.encoding='GB18030'
     html = req.text
     bf = BeautifulSoup(html,"lxml")
     texts = bf.find_all('div', class_ = 'panel-body')
     print(texts)
有结果:

接下来就是去除div标签名,br标签和一些空格。

编程test4.py,有:

from bs4 import BeautifulSoup
import requests
if __name__ == "__main__":
     target = 'http://www.biqukan.net/book/23326/9979822.html'
     req = requests.get(url = target)
     req.encoding='GB18030'
     html = req.text
     bf = BeautifulSoup(html,"lxml")
     texts = bf.find_all('div', class_ = 'panel-body')
     print(texts[0].text.replace('\xa0'*8,'\n\n'))
运行后,有:


find_all匹配的返回的结果是一个列表。提取匹配结果后,使用text属性,提取文本内容,滤除br标签。随后使用replace方法,剔除空格,替换为回车进行分段。

 在html中是用来表示空格的。replace('\xa0'*8,'\n\n')就是去掉下图的八个空格符号,并用回车代替。

target = 'http://www.biqukan.net/book/23326/9979822.html'
该行中,若把9979822改为9979823,即得到小说第2章的内容,要对HTML信息进行观察分类。

然后是要匹配目录,观察到

正文内容全部在目录下。

因此编程test5.py,有:

from bs4 import BeautifulSoup
import requests
if __name__ == "__main__":
     target = 'http://www.biqukan.net/book/23326/'
     req = requests.get(url = target)
     req.encoding='GB18030'
     html = req.text
     div_bf = BeautifulSoup(html,"lxml")
     div = div_bf.find_all('dd', class_ = 'col-md-3')
     print(div)
注意对应的
div = div_bf.find_all('dd', class_ = 'col-md-3')

运行后,有:


因为从第1088章开始,所以起初以为结果是有问题的。但是在Pycharm中又是可以的。

问过作者后,


在cmd中运行,


结果是可以的。


今天就学了这么多,接下来要继续跟着大神走完实例,好好学习。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值