第1章 无处不在的反爬虫
1.1 学习反爬虫的理由
1.1.1 反爬虫的定义
1.1.2 反爬虫对信息的保护
1.1.3 防止恶意竞争与知识产权侵犯
1.1.4 反爬虫对网站的维护
1.1.5 爬虫与反爬虫的相爱相杀:反爬虫对抗爬虫
1.2 什么样的爬虫会被反爬呢?
1.2.1 “裸体”爬虫
1.2.2 “索取无度”的爬虫
1.2.3 “不守规定”的爬虫
1.3 爬虫程序员的噩梦:多种多样的反爬虫机制
1.3.1 基于IP反爬虫:封锁IP
1.3.2 基于request headers反爬虫:检查“身份证”
1.3.3 基于用户行为的反爬虫
1.3.4 动态页面的反爬虫
1.3.5 登录限制(cookie限制)
1.3.6 验证码限制
1.3.7 JavaScript加密
1.3.8 文本混淆反爬虫:从根本上伪装信息
1.4 本章小结
第2章 抓包利器的使用
2.1 抓包
2.1.1 什么是抓包?
2.1.2 抓包的意义
2.1.3 HTTP的抓包原理
2.1.4 HTTPS的抓包原理
2.1.5 常见抓包工具的对比
2.2 抓包工具Charles的使用
2.2.1 什么是Charles?
2.2.2 Charles的抓包原理
2.2.3 Charles的配置
2.2.4 使用Charles对网站进行抓包
2.2.5 使用Charles对App进行抓包
2.3 抓包工具Fiddler的使用
2.3.1 Fiddler简介
2.3.2 Fiddler与Charles的区别
2.3.3 Fiddler证书的安装
2.3.4 Fiddler的使用
2.4 抓包工具Mitmproxy的使用
2.4.1 Mitmproxy简介
2.4.2 Mitmproxy的工作原理
2.4.3 Mitmproxy的工作模式
2.4.4 Mitmproxy的使用
2.5 抓包工具Wireshark的使用
2.5.1 Wireshark简介
2.5.2 Wireshark与Fiddler的区别
2.5.3 Wireshark的使用
2.6 本章小结
第3章 信息校验型反爬虫
3.1 信息校验反爬虫概述
3.1.1 信息校验反爬虫的原理
3.1.2 信息校验反爬虫的常见类型
3.2 useragent反爬虫
3.2.1 什么是UA?
3.2.2 UA的改变方法
3.3 cookie反爬虫
3.3.1 HTTP机制
3.3.2 cookie的作用
3.3.3 session和cookie的关系
3.4 Referer反爬虫
3.4.1 Referer的意义
3.4.2 Referer的破解方法
3.5 签名验证反爬虫
3.5.1 签名验证的原理
3.5.2 签名验证的破解
3.6 本章小结
第4章 验证码识别
4.1 什么是验证码?
4.1.1 验证码原理
4.1.2 验证码的应用
4.1.3 验证码分类
4.2 图像识别技术
4.2.1 图像识别技术的基础知识
4.2.2 什么是OCR?
4.2.3 OCR原理
4.2.4 什么是Tesseract?
4.3 打码平台的使用
4.3.1 什么是打码平台?
4.3.2 如何使用打码平台
4.4 验证码爬虫案例
4.4.1 分析测试网站
4.4.2 实现模拟登录
4.4.3 核心代码
4.5 本章小结
第5章 模拟登录
5.1 requests模拟登录
5.1.1 requests的基础操作
5.1.2 get请求方式
5.1.3 cookie的使用
5.1.4 post请求方式
5.1.5 get请求失败的案例
5.2 selenium模拟登录
5.2.1 什么是selenium?
5.2.2 安装selenium及驱动
5.2.3 网页结构与xpath简介
5.2.4 selenium的元素定位
5.2.5 使用selenium进行交互
5.2.6 使用selenium进行模拟登录
5.3 案例——selenium+验证码模拟登录
5.3.1 原理分析
5.3.2 获取验证码图片
5.3.3 实现selenium+验证码模拟登录
5.3.4 核心代码
5.4 本章小结
第6章 搭建IP代理池爬虫
6.1 IP的基础知识
6.1.1 IP地址的简述
6.1.2 什么是IPv4?
6.1.3 什么是IPv6?
6.1.4 IPv4与IPv6的对比
6.2 IP封锁
6.2.1 IP封锁反爬虫的基本原理
6.2.2 IP封锁的影响
6.3 如何突破IP封锁
6.3.1 降低爬虫性能——设置休眠时间
6.3.2 使用IP代理
6.4 IP代理
6.4.1 什么是IP代理?
6.4.2 为什么要进行IP代理?
6.5 IP代理池
6.5.1 实现IP代理
6.5.2 如何构建IP代理池
6.6 案例1——urllib的IP代理
6.6.1 代码简述
6.6.2 完整代码
6.7 案例2——构建IP代理池
6.7.1 代理网站分析
6.7.2 代理IP获取
6.7.3 代理IP检测与保存
6.7.4 完整代码
6.8 本章小结
第7章 针对动态渲染页面的反爬
7.1 动态渲染网页的原理
7.1.1 静态页面和动态页面
7.1.2 JavaScript实现渲染的简单原理
7.2 动态渲染实现的方式
7.2.1 自动执行的异步请求
7.2.2 点击事件和计数
7.2.3 下拉加载和异步请求
7.3 解决动态渲染的反爬工具
7.3.1 selenium
7.3.2 puppeteer
7.3.3 Splash
7.4 案例——爬取漫画网漫画数据
展开