1.爬虫背景知识
概念
形势与趋势
主要面对问题
一般流程
一般架构
2.爬虫编程核心
文件IO
字符串编码
切片
列表推导式
内置数据结构
异常处理
函数
迭代器/生成器
装饰器
更多案例实战
3.爬虫网络实战
urllib库
request库
HTTP原理:协议、状态码、主要头
传输与内容编码
网页基础:HTML、REST、JS
Ajax机制与获取
信息链接
Web抓包:Web Developer
App抓包:mitmproxy
网络知识:NAT、代理、CDN
代理池设置与池维护
其他代理策略
更多案例实战
4.爬虫认证实战
Https保护
Robots协议
合法爬虫行为
认证知识
Web认证
会话原理:cookie、session
Cookie设置与池维护
图片式认证与破解
滑块式认证与破解
点选式认证与破解
更多案例实战
5.爬虫数据解析实战
JSON
正则表达式
XML解析与XPATH
HTML解析与Beautiful Soup
动态网页与Selenium、Splash
App模拟与Appium
更多案例实战
6.爬虫性能实战
GIL
线程池
进程池
异步IO
Pypy
7.爬虫分布式实战
队列服务
数据状态服务
调度服务
存储服务
8.爬虫框架
Pyspider使用
Scrapy使用
9.ETL(可选)
杂乱数据处理
缺失数据补充
数据转换
数据富化
数据聚集
10.可视化(可选)
Jupyter使用
Flask/Django使用
Dash使用
课程策略
实施方法:讲原理(不玩理论)、讲方法、讲技巧、讲干货;经验分享;教训总结。
目的:原理清晰,打牢地基,保证上层建筑质量。
课时:推荐2天(可根据需要缩剪或延伸)
课程中要逐一解决的问题
1. 爬虫不够灵活,自适应差,容易出错,难以维护
2. 爬虫不够智能,不够自动化,需要过多配置与介入
3. 爬虫并发效率低,不能重复利用资源
4. 爬虫不易扩展,不能适应大规模场景
5. 爬虫容错性性低,网络震荡或单一源失效后影响整体
6. 爬虫不够强大,爬取信息过于加单
7. 爬虫行为低级,容易被识别,过早失效