前言
第1章 网络爬虫架构
1.1 爬虫发展史
1.2 爬虫基本架构
1.3 分布式爬虫架构
1.3.1 主从分布式
1.3.2 对等分布式
1.4 网络爬虫遍历策略
1.4.1 广度优先策略
1.4.2 深度优先策略
1.4.3 最佳优先策略
1.5 智能采集系统架构
1.5.1 采集需求分类
1.5.2 页面智能解析
1.5.3 数据管理模块
第2章 Python爬虫技巧
2.1 Utils
2.1.1 爬虫工具包
2.1.2 智能解析库
2.2 Scrapy
2.2.1 Scrapy架构
2.2.2 Scrapy信号
2.2.3 Scrapy异常
2.2.4 Scrapy去重
2.2.5 Scrapy部署
2.2.6 Scrapy监控
2.3 Asyncpy
2.3.1 Asyncpy架构
2.3.2 Asyncpy安装
2.3.3 Asyncpy使用
2.4 Feapder
2.4.1 Feapder架构
2.4.2 Feapder使用
2.4.3 Feapder部署
2.5 ScrapyRedis
2.5.1 运行原理
2.5.2 源码解析
2.5.3 集群模式
2.6 Scrapy开发
2.6.1 Scrapy_helper
2.6.2 Webmagicx
2.7 Crawlab
2.7.1 Crawlab架构
2.7.2 Crawlab部署
2.8 代理IP工具
2.8.1 Proxy_pool
2.8.2 PyproxyAsync
第3章 Web Js逆向
3.1 逆向基础
3.1.1 语法基础
3.1.2 作用域
3.1.3 窗口对象属性
3.1.4 事件
3.2 浏览器控制台
3.2.1 Network
3.2.2 Sources
3.2.3 Application
3.2.4 Console
3.3 加密参数定位方法
3.3.1 巧用搜索
3.3.2 堆栈调试
3.3.3 控制台调试
3.3.4 监听XHR
3.3.5 事件监听
3.3.6 添加代码片
3.3.7 注入和Hook
3.3.8 内存漫游
爬虫逆向进阶实战
3.4 常见的压缩和混淆
3.4.1 webpack
3.4.2 eval混淆
3.4.3 aa和jj混淆
3.4.4 Jsfuck混淆
3.4.5 OLLVM混淆
3.4.6 soJson加密
3.4.7 lsb隐写
3.5 常见的编码和加密
3.5.1 base64
3.5.2 MD5
3.5.3 SHA1
3.5.4 HMAC
3.5.5 DES
3.5.6 AES
3.5.7 RSA
3.6 加密参数还原与模拟
3.6.1 Virustotal逆向入门案例
3.6.2 Newrank榜单逆向案例
3.6.3 MD5加密逆向案例
3.6.4 RSA参数加密逆向案例
3.6.5 AES数据加密逆向案例
3.6.6 AES链接加密逆向案例
3.6.7 CNVD加速乐分析案例
3.7 浏览器环境补充
3.7.1 常被检测的环境
3.7.2 手动补充环境
3.7.3 JSDOM环境补充
3.7.4 Selenium环境模拟
3.7.5 puppeteer环境模拟
3.8 浏览器环境监测
3.8.1 Proxyintercept
3.8.2 Objecthook
3.9 加密方法远程调用
3.9.1 微博登录参数RPC
3.9.2 抖音直播数据RPC
3.9.3 巨量指数签名RPC
3.10 常见协议分析
3.10.1 webSocket协议
3.10.2 Protobuf协议
3.11 常见反调试
3.11.1 无限Debugger
3.11.2 无法打开控制台
3.11.3 禁用控制台输出
3.11.4 蜜罐和内存爆破
3.11.5 控制台状态检测
3.12 调试工具补充
3.12.1 WTJS调试工具
3.12.2 发条JS调试工具
3.12.3 鬼鬼JS调试工具
3.13 反混淆AST
3.13.1 节点类型对照表
3.13.2 节点属性和方法
3.13.3 拆解简单ob混淆
3.13.4 用AST还原代码
第4章 自动化工具的应用
4.1 Selenium
4.1.1 工具简介
4.1.2 基本操作
4.1.3 调用JavaScript
4.1.4 采集案例
4.1.5 检测应对
4.2 Pyppeteer
4.2.1 工具简介
4.2.2 使用方法
4.2.3 检测应对
4.2.4 拦截器
4.3 cefPython3
4.3.1 安装和使用
4.3.2 浏览器配置
4.3.3 客户端控制
4.3.4 文档解析
4.3.5 爬虫实战
4.4 Playwright
4.4.1 工具安装
4.4.2 基本使用
4.4.3 异步任务
4.4.4 自动录制
4.5 Appnium
4.5.1 Appnium概念
4.5.2 Appnium配置
4.5.3 Appnium测试
4.6 Airtest
4.6.1 设备连接
4.6.2 窗口介绍
4.6.3 简单测试
4.7 Auto.js
4.7.1 工具简介
4.7.2 使用案例
4.7.3 指数查询案例
第5章 抓包工具的应用
5.1 Fiddler
5.1.1 Fiddler配置
5.1.2 Fiddler断点
5.1.3 Fiddler接口调试
5.1.4 Fiddler替换Js文件
5.1.5 Fiddler保存响应内容
5.1.6 Fiddler监听webSocket
5.2 Charles
5.2.1 Charles配置
5.2.2 Charles断点
5.2.3 Charles保存响应内容
5.2.4 Charles监听webSocket
5.3 MitmProxy
5.3.1 工具介绍
5.3.2 安装配置
5.3.3
展开