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