商品详情
书名:Python爬虫开发实战教程(微课版)
定价:49.8
ISBN:9787115527882
作者:蜗牛学院 卿淳俊 邓强
版次:*1版
出版时间:2020-06
内容提要:
本书以Python语言为基础描述了网络爬虫的基础知识,用大量实际案例及代码,向读者介绍了编写网络爬虫所需要的相关知识要点及项目实践的相关技巧。本书共5章,介绍了爬虫的基本结构及工作流程、抓包工具、模拟网络请求、网页解析、去重策略、常见反爬措施,以及大型商业爬虫框架Scrapy的应用,*后介绍了数据分析及可视化的相关基础知识。
作者简介:
卿淳俊,蜗牛学院*深讲师,16年IT行业工作经验。曾就职于Nokia、Tieto等知名外企,担任项目管理、*级工程师职位,负责软件测试、软件研发等工作。精通各类开发及测试工具、框架设计与实现,尤其擅长电商、大数据领域的项目。曾作为行业特邀专家与四川省质量技术监督局共同起草了四川省质量标准文件《移动智能终端应用软件(APP)产品通用技术要求及测试规范》。随着数据科学领域的发展,近几年在Python爬虫、数据分析、人工智能领域也积累了丰富的实战经验。教学风格深入浅出,思路严谨,并坚持“授人以鱼不如授人以渔”的原则,培养了大量*秀行业人才。 邓强,蜗牛学院创始人,独立咨询顾问,*深企业内训讲师,四川大学硕士,16年软件研发及管理经验。精通各种开发和测试技术,具有丰富的项目实施经验和研发管理经验。曾为深圳移动,大唐软件,华夏基金,联想集团,第九城市等20余家企业提供技术咨询、项目实施及内训服务。出版技术类图书近10本,覆盖Web前端开发、Java、PHP、Python开发,以及自动化测试开发等领域。从事培训事业以来学生数万,遍布国内外各大IT公司。教学思路严谨,原理讲解透彻。
目录:
第 1章 静态网页爬虫 1
1.1 爬虫的基本概念和工作原理 2
1.1.1 什么是网络爬虫 2
1.1.2 爬虫的结构与工作流程 3
1.2 爬虫抓包分析 4
1.2.1 使用Chrome浏览器进行抓包分析 4
1.2.2 使用Fiddler进行抓包分析 11
1.3 Requests库的基本使用方法 22
1.3.1 安装Requests库 22
1.3.2 通过Requests发送GET请求 22
1.3.3 在GET请求中添加参数 29
1.3.4 发送POST请求 29
1.3.5 获取请求的状态码 30
1.3.6 指定请求时使用的headers及动态更新headers 31
1.3.7 指定Cookies和动态更新Cookies 32
1.3.8 使用session对象保持会话状态 34
1.4 网页解析利器XPath、CSS-Selector和正则表达式语法 35
1.4.1 XPath的基本语法及使用 35
1.4.2 常见相对路径引用 37
1.4.3 XPath进阶应用 38
1.4.4 CSS-Selector的基本语法及使用 40
1.4.5 正则表达式的基本语法及使用 41
1.5 常见爬虫爬取策略 43
1.5.1 宽度优先搜索策略 44
1.5.2 深度优先搜索策略 45
1.6 常见网页URL和内容去重策略 48
1.6.1 去重策略的使用场景 48
1.6.2 常见爬虫去重策略 48
1.6.3 BloomFilter算法 49
1.6.4 内容去重策略的实现 52
1.7 实战:编写一个基于静态网页的爬虫 52
第 2章 常见反爬措施及解决方案 65
2.1 常见反爬手段——身份验证 66
2.1.1 使用登录的Cookies获取数据 66
2.1.2 模拟登录请求 71
2.1.3 使用Selenium模拟登录 74
2.2 常见反爬手段——验证码 76
2.2.1 验证码反爬原理 76
2.2.2 常见验证码类型 77
2.2.3 常见验证码处理方式 77
2.3 常见反爬手段——速度、数量限制 87
2.3.1 服务器对速度、数量限制反爬的原理和手段 87
2.3.2 针对反爬限速、频次限制的突破手段 87
2.4 自己动手搭建IP代理池 88
2.4.1 创建IP代理池的基本要求 89
2.4.2 IP代理池基本架构 89
2.4.3 相关组件的安装 90
2.4.4 同步I/O和异步I/O的概念和区别 97
2.4.5 在Python中如何实现异步I/O 98
2.5 常见反爬手段——异步动态请求 105
2.6 常见反爬手段——JS加密请求参数 110
第3章 自己动手编写一个简单的爬虫框架 122
3.1 简单爬虫框架的结构 123
3.2 编写URL管理器 124
3.3 编写资源下载器 125
3.4 编写HTML解析器 126
3.5 编写资源存储器 128
3.6 编写爬虫调度器 128
第4章 Scrapy框架应用 131
4.1 Scrapy的相关概念与原理 132
4.2 安装Scrapy框架 134
4.2.1 在Windows中安装Scrapy 134
4.2.2 在Linux中安装Scrapy 136
4.2.3 在MacOS中安装Scrapy 136
4.3 创建第 一个Scrapy项目 137
4.3.1 创建Scrapy项目 137
4.3.2 Scrapy项目的结构 137
4.3.3 定义爬虫文件 138
4.4 在PyCharm中运行和调试Scrapy项目 142
4.4.1 在PyCharm中运行Scrapy项目 143
4.4.2 在PyCharm中调试Scrapy项目 144
4.5 使用Scrapy进行请求间数据传递 146
4.6 Scrapy命令行用法详解 152
4.7 常用Scrapy组件的用法 160
4.7.1 定义数据Item 160
4.7.2 利用Item Pipeline将数据持久化 162
4.7.3 编写Item Pipeline 163
4.7.4 中间件的用法 173
4.8 Scrapy中对同一项目不同的Spider启用不同的配置 178
4.9 Scrapy分布式爬虫的运行原理 182
4.9.1 实现多机分布式爬取的关键 182
4.9.2 源码解读之connection.py 184
4.9.3 源码解读之dupefilter.py 184
4.9.4 源码解读之pipelines.py 185
4.9.5 源码解读之queue.py 186
4.9.6 源码解读之scheduler.py 187
4.9.7 源码解读之spider.py 188
4.10 利用Scrapy+Redis进行分布式爬虫
实践 190
4.10.1 运行环境准备 190
4.10.2 修改Scrapy项目配置及相关源码 191
4.10.3 部署到不同的从机中 192
4.10.4 其他可选配置参数 192
第5章 爬虫数据分析及可视化 193
5.1 安装Jupyter Notebook和Highcharts库 194
5.1.1 Jupyter Notebook 194
5.1.2 使用Jupyter Notebook的原因 195
5.1.3 Jupyter Notebook的安装和配置 195
5.1.4 安装过程中可能遇到的错误 196
5.1.5 Jupyter Notebook的常用设置 198
5.1.6 Highcharts库的安装和配置 198
5.2 熟悉Jupyter Notebook的基本用法 199
5.2.1 创建一个新的Notebook文件 199
5.2.2 在Jupyter Notebook中运行代码 200
5.2.3 在Jupyter Notebook中编写Markdown格式文档 202
5.3 熟悉Highcharts库的基本用法 203
5.3.1 Highcharts的基本组成 203
5.3.2 Python charts库的基本使用 204
5.3.3 charts的option属性设置 207
5.4 利用Jupyter Notebook和Highcharts实现数据分析和展示 209
5.4.1 数据分析的流程 210
5.4.2 数据分析实践 210
5.5 利用词云实现可视化效果 213
5.5.1 jieba分词器 213
5.5.2 jieba分词器的特点及安装方法 214
5.5.3 wordcloud词云组件 215
5.5.4 利用蜗牛笔记数据生成词云 218
参考文献 222