Author(s): Katharine Jarmu,Richard Lawson
Edition: 2
Publisher: 人民邮电出版社
Year: 2018
Language: Chinese
Pages: 200
扉页
版权
内容提要
关于作者
关于审稿人
前言
资源与支持
目录
第1章 网络爬虫简介
1.1 网络爬虫何时用
1.2 网络爬虫是否合法
1.3 Python 3
1.4 背景调研
1.4.1 检查robots.txt
1.4.2 检查网站地图
1.4.3 估算网站大小
1.4.4 识别网站所用技术
1.4.5 寻找网站所有者
1.5 编写第一个网络爬虫
1.5.1 抓取与爬取的对比
1.5.2 下载网页
1.5.3 网站地图爬虫
1.5.4 ID遍历爬虫
1.5.5 链接爬虫
1.5.6 使用requests 库
1.6 本章小结
第2章 数据抓取
2.1 分析网页
2.2 3 种网页抓取方法
2.3 CSS选择器和浏览器控制台
2.4 XPath 选择器
2.5 LXML 和家族树
2.6 性能对比
2.7 抓取结果
2.7.1 抓取总结
2.7.2 为链接爬虫添加抓取回调
2.8 本章小结
第3章 下载缓存
3.1 何时使用缓存
3.2 为链接爬虫添加缓存支持
3.3 磁盘缓存
3.3.1 实现磁盘缓存
3.3.2 缓存测试
3.3.3 节省磁盘空间
3.3.4 清理过期数据
3.3.5 磁盘缓存缺点
3.4 键值对存储缓存
3.4.1 键值对存储是什么
3.4.2 安装Redis
3.4.3 Redis 概述
3.4.4 Redis 缓存实现
3.4.5 压缩
3.4.6 测试缓存
3.4.7 探索requests-cache
3.5 本章小结
第4章 并发下载
4.1 100 万个网页
4.1.1 解析Alexa列表
4.2 串行爬虫
4.3 多线程爬虫
4.4 线程和进程如何工作
4.4.1 实现多线程爬虫
4.4.2 多进程爬虫
4.5 性能
4.5.1 Python多进程与GIL
4.6 本章小结
第5章 动态内容
5.1 动态网页示例
5.2 对动态网页进行逆向工程
5.2.1 边界情况
5.3 渲染动态网页
5.3.1 PyQt 还是PySide
5.3.2 执行JavaScript
5.3.3 使用WebKit 与网站交互
5.4 渲染类
5.4.1 Selenium
5.5 本章小结
第6章 表单交互
6.1 登录表单
6.1.1 从浏览器加载cookie
6.2 支持内容更新的登录脚本扩展
6.3 使用 Selenium 实现自动化表单处理
6.3.1 网络抓取时的“人类化”方法
6.4 本章小结
第7章 验证码处理
7.1 注册账号
7.1.1 加载验证码图像
7.2 光学字符识别
7.2.1 进一步改善
7.3 处理复杂验证码
7.4 使用验证码处理服务
7.4.1 9kw入门
7.4.2 报告错误
7.4.3 与注册功能集成
7.5 验证码与机器学习
7.6 本章小结
第8章 Scrapy
8.1 安装 Scrapy
8.2 启动项目
8.2.1 定义模型
8.2.2 创建爬虫
8.3 不同的爬虫类型
8.4 使用 shell命令抓取
8.4.1 检查结果
8.4.2 中断与恢复爬虫
8.5 使用 Portia 编写可视化爬虫
8.5.1 安装
8.5.2 标注
8.5.3 运行爬虫
8.5.4 检查结果
8.6 使用 Scrapely 实现自动化抓取
8.7 本章小结
第9章 综合应用
9.1 Google 搜索引擎
9.2 Facebook
9.2.1 网站
9.2.2 Facebook API
9.3 Gap
9.4 宝马
9.5 本章小结