爬虫的核心步骤
接下来介绍爬虫的原理、过程和步骤,以及相关涉及到的知识。
从原理上来说,写爬虫去爬数据的过程,最核心的就这3步:
下载=download提取=extract保存=save
下面详细解释每一步的各种细节:
下载=下载网页- 做了什么:请求网址或api接口,去下载返回
- 得到什么:html网页或json字符串
- 涉及到
- (尤其是新手需要学习)Http基本知识
RequestMethodGETPOST- 等
HeaderUser-AgentContent-TypeAcceptAuthorization- 等
CookieBodydatajson
ResponseStatus CodeHeaderCookieBodydatajson- 教程:主流数据格式:JSON
- 教程:HTTP知识总结
- 如果被爬方(
网站,app等)- 需要用户登录后才能看到数据
- 用技术绕过限制
模拟登陆- 先要抓包分析出登录逻辑
- 再用代码模拟用户登录
- 用技术绕过限制
- 做了一些
反爬措施验证码- 用技术绕过限制
验证码识别- (用第三方)
打码平台
- (用第三方)
- 用技术绕过限制
IP限制+抓取频率限制- 用技术绕过限制
IP代理池- 设置抓取的
间隔时间
- 用技术绕过限制
身份限制- Http的Headers
UA=User-Agent
- Http的Headers
- 需要用户登录后才能看到数据
- 被爬网站所含页面层级很多
抓取策略深度优先遍历策略宽度优先遍历策略反向链接数策略Partial PageRank策略OPIC策略策略大站优先策略
- (尤其是新手需要学习)Http基本知识
提取数据- 做了什么:从(返回的)网页(的
html,js等)或json中提取 - 得到什么:自己需要的内容
- 涉及到
字符编码的问题- 如果搞不清编码,就容易出现各种乱码问题
- 需要学习相关
编码知识- 教程:字符编码详解与应用
- 【整理Book】Python心得:字符串和字符编码
html的meta charset编码检测Pythonchardet
- 教程:字符编码详解与应用
- 如果被爬方做了反爬
数据加密- 用技术绕过
- 找到
解密的逻辑和方法- 教程:安卓应用的安全和破解
- 【已解决】尝试破解小花生app安卓apk希望看到api返回的json中的J的解密算法得到明文
- 教程:安卓应用的安全和破解
- 找到
- 用技术绕过
- 做了什么:从(返回的)网页(的
保存数据- 做了什么:把数据保存到对应的地方
- 得到什么:包含了我们要的特定格式的数据的文件或数据库
- 保存成不同格式:
- 文件
txtcsv/excel
- 数据库
mysqlmongodbsqlite- 等等
- 文件