内容简介
第一篇 基础知识
第1章 Python环境搭建
1.1Python的安装
1.1.1Windows下Python的安装
1.1.2Mac OS X下Python的安装
1.1.3Linux下Python的安装
1.1.4安装pip工具
1.2虚拟环境Virtualenv
1.2.1Virtualenv的安装
1.2.2创建虚拟环境
1.2.3激活虚拟环境
1.2.4创建指定Python版本的虚拟环境
1.3选择合适的编辑器
1.3.1Vim
1.3.2Atom
1.3.3Sublime Text
1.3.4Notepad++
1.3.5Pycharm
第2章 常用爬虫库Requests
2.1安装Requests
2.1.1用pip安装
2.1.2用github源码安装
2.1.3用Curl安装
2.2了解Requests的功能
2.2.1使用GET和POST发送请求
2.2.2通过URL传递参数
2.2.3设置超时
2.2.4查看返回内容
2.2.5设置请求头
2.2.6更多复杂的Post请求
2.2.7返回对象状态码
2.2.8设置代理IP
2.3BeautifulSoup的安装和使用
2.3.1使用pip安装BeautifulSoup
2.3.2使用BeautifulSoup定位元素
2.4初识自动化测试工具Selenium
2.4.1Selenium安装
2.4.2使用Selnium爬取网站
2.5Selenium定位元素
2.5.1通过属性定位
2.5.2通过xpath定位
2.6Selenium反爬设置
2.6.1设置请求头
2.6.2设置代理IP
第3章 常用爬虫框架Scrapy
3.1认识Scrapy
3.1.1Scrapy爬取quotes简单示例
3.1.2安装所需依赖包
3.1.3使用虚拟环境
3.2Scrapy shell的使用
3.2.1运行shell
3.2.2使用Scrapy shell爬取Scrapyorg
3.2.3爬虫调用shell
3.3使用Scrapy爬取quotes
3.3.1创建Scrapy项目并新建爬虫
3.3.2爬取和提取数据
3.3.3通过脚本运行Scrapy爬虫
3.3.4在同一进程下运行多个爬虫
3.3.5简易的分布式爬虫思路
3.3.6防止爬虫被ban
3.4setting基本配置
3.5Pipeline模块
3.5.1爬取文字板块
3.5.2编写Pipeline模块
3.5.3通过Pipeline将数据写入MongoDB数据库
3.5.4ImagesPipeline处理图片
3.5.5FilePipeline下载文件
3.6Middleware中间件
3.6.1Downloader Middleware
3.6.2随机请求头中间件
3.6.3更换代理IP中间件
3.6.4通过Downloader Middleware使用Selenium
3.6.5Spider Middleware
3.7新功能拓展
3.7.1信号signals
3.7.2自定义拓展
第4章 数据存储——数据库的选择
4.1MySQL数据库
4.1.1MySQL的安装
4.1.2几款可视化工具
4.1.3数据库连接
4.1.4数据库插入操作
4.1.5数据库查询
4.1.6数据库更新操作
4.1.7爬取写入数据库
4.2MongoDB数据库
4.2.1MongoDB安装
4.2.2连接数据库
4.2.3查询数据库
4.2.4插入和更新数据库
4.2.5爬取数据并插入到MongoDB数据库中
4.3Redis数据库
4.3.1Redis安装
4.3.2连接Redis数据库
4.3.3Python操作Redis数据库
4.3.4爬取并写入Redis做缓存
第5章 效率为王——分布式爬虫
5.1什么是分布式爬虫
5.1.1分布式爬虫的效率
5.1.2实现分布式的方法
5.2Celery
5.2.1Celery入门
5.2.2Celery分布式爬虫
5.3使用Scrapy-redis的分布式爬虫
5.3.1Scrapy-redis安装与入门
5.3.2创建Scrapy-redis爬虫项目
第6章 抓包的使用与分析
6.1利用抓包分析目标网站
6.1.1如何抓包
6.1.2网页抓包分析
6.2手机APP抓包
6.2.1使用fiddler抓包
6.2.2HTTPS证书安装
6.2.3booking手机端抓包
第7章 Websocket通信网站爬取
7.1什么是Websocket
7.1.1Websocket-clinet
7.1.2Websocket-clinet简单入门
7.2使用Websocket爬取财经网站
第8章 验证码破解
8.1关于验证码
8.1.1一般的验证码
8.1.2极验验证
8.2极验滑动验证破解
8.2.1准备工具
8.2.2分析滑动验证码
8.2.3开始破解极限滑动验证码:
8.3图片验证码破解
8.3.1准备工具
8.3.2文字图像识别
8.3.3识别验证码
第9章 多线程与多进程并发爬取
9.1多线程
9.1.1堵塞与非堵塞
9.1.2继承threading.Thread创建类
9.1.3多线程的锁
9.1.4queue队列
9.1.5线程池
9.2多线程爬虫
9.2.1爬虫框架
9.2.2编写爬虫
9.2.3以多线程方式启动
9.3多进程
9.3.1multiprocessing模块
9.3.2通过Pool进程池创建进程
9.3.3multiprocessing.Queue队列
9.3.4multiprocessing.Pipe管道
9.3.5multiprocessing.Lock锁
9.4多进程爬虫
9.4.1多进程爬取音频
9.4.2多进程加多线程进行爬取
第10章 爬虫接口优化
10.1Gunicom的安装与使用
10.2Gunicorn配置
10.2.1配置参数
10.2.2通过config文件启动
第11章 使用Docker部署爬虫
11.1Docker
11.1.1Docker的安装
11.1.2Docker的镜像
11.1.3构建自己的Docker镜像
11.1.4容器使用
11.1.5Dockerfile
11.2爬虫部署
11.2.1爬虫接口
11.2.2部署爬虫接口
第二篇 实战案例
第12章 实战1:建立代理IP池
12.1爬取免费代理IP
12.1.1爬取代理IP
12.1.2检验代理IP
12.2建立代理IP池
12.2.1检验代理IP
12.2.2Redis消息队列
12.2.3master爬虫
第13章 实战2:磁力链接搜索器
13.1爬取磁力搜索平台
13.1.1磁力平台
13.1.2slave爬虫
13.2实现磁力搜索器
13.2.1展示与交互
13.2.2数据查询
第14章 实战3:爬虫管家
14.1QQ机器人
14.1.1qqbot
14.1.2基本操作
14.1.3实现自己的机器人
14.2爬虫监控机器人
第15章 实战4:数据可视化
15.1可视化包Pyecharts
15.1.1Pyecharts的安装
15.1.2地图展示数据
15.2爬取最低价机票数据
15.2.1破解旅游网站价格日历接口
15.2.2爬取旅游网站
15.2.3将数据可视化
第16章 实战5:爬取贴吧中的邮箱
16.1爬取网站
16.1.1爬取高校名单
16.1.2利用正则表达式匹配号码
16.2分析贴吧搜索页面并提取号码
16.3使用Scrapy开始编码
16.3.1创建贴吧Scrapy项目
16.3.2新建爬虫并编写爬虫逻辑
16.3.3数据处理
第17章 实战6:批量爬取企业信息
17.1从第三方平台获取企业名
17.2如何爬取企业详细信息
第18章 实战7:爬取公众号历史文章
18.1分析公众号接口
18.1.1开始抓包
18.1.2分析接口
18.1.3尝试请求数据
18.2爬取公众号
18.2.1爬取思路
18.2.2请求接口获取文章URL
18.2.3解析文章网页源码
18.2.4合并代码
第19章 实战8:高效爬取——异步爬虫
19.1异步编程
19.1.1asyncio库
19.1.2aiohttp库
19.1.3访问多个URL
19.2爬取图片
19.2.1为函数命名
19.2.2对网页进行解析
19.2.3异步爬取图片
第20章 实战9:爬取漫画网站
20.1爬取单部漫画
20.1.1单集漫画的爬取
20.1.2全集漫画的爬取
20.2爬取漫画全站
第21章 实战10:给kindle推送爬取的小说
21.1用Python发送邮件
21.1.1纯文本邮件的发送
21.1.2带附件邮件的发送
21.2爬取小说
21.2.1制作word文档
21.2.2爬取baka-tsuki.org
第22章 实战11:爬取游民星空壁纸
22.1星空壁纸的爬取准备
22.2爬取壁纸
22.2.1获取图片和下一页地址
22.2.2爬取列表页
22.2.3爬取高清图片资源
第23章 综合实战:建立一个小网站
23.1Flask框架
23.1.1写一个简单的hello word网页
23.1.2添加html模板
23.2Bootstrap框架
23.2.1使用Bootstrap框架
23.2.2Bootstrap在线模板
23.2.3添加壁纸板块
第24章 综合实战:爬取电影网站
24.1理清爬虫的思路
24.2分步编码实现爬取
24.2.1爬取详情页
24.2.2爬取列表页
24.2.3爬取首页
24.2.4写入数据库
第25章 综合实战:建立电影小站
25.1搭建项目
25.1.1sqlite数据库
25.1.2创建项目
25.1.3通过蓝图建立电影板块
25.2建立模板
25.2.1flask-bootstrap
25.2.2电影页面
25.2.3电影分类
25.2.4电影详情页
25.2.5电影搜索页
第26章 综合实战:磁力搜索
26.1磁力搜索
26.1.1如何高效爬取
26.1.2建立Celery任务
26.2Web部分
26.2.1建立模型
26.2.2视图函数
26.2.3关于产品