什么是网络爬虫?
网络爬虫(Web Spider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本。
爬虫流程
- 先由urllib的request打开Url得到网页html文档
- 浏览器打开网页源代码分析元素节点
- 通过Beautiful Soup或者正则表达式提取想要的数据
- 存储数据到本地磁盘或数据库(抓取,分析,存储)
简单实例
爬取17K小说网(https://www.17k.com/)中的一部小说《斩月》
获取章节内容
先看代码:
import requests
if __name__ == '__main__':
target = 'https://www.17k.com/chapter/3062292/39084147.html'
req = requests.get(target)
req.encoding = req.apparent_encoding
html = req.text
print(html)
通过urllib的request打开Url得到网页html文档,apparent_encoding 属性是通过解析得到网页的编码方式,并且赋值给requests.encoding,就能保证打印出来的不是乱码格式的网页html文档。
不过有时候apparent_encoding属性解析出来的是它所认为正确的编码格式,但是和原编码格式不一致,最终导致乱码问题。因此可以现在网页端知道网页编码格式,再通过requests.encoding直接赋值进行转码。就不会出现乱码,如 requests.encoding=‘utf-8’
通过此方法得到网页文档,找到文章内容所对应的div:
再通过 BeautifulSoup 提取想要的内容: