[套装书]从零开始学Scrapy网络爬虫(视频教学版)+Python爬虫开发与项目实战(2册)

作者
张涛范传辉
丛书名
出版社
机械工业出版社
ISBN
9781909171429
简要
简介
内容简介书籍计算机书籍 ---------------------------从零开始学Scrapy网络爬虫(视频教学版)--------------------------- 本书从零开始,循序渐进地介绍了目前最流行的网络爬虫框架Scrapy。本书共13章。其中第1~4章为基础篇,介绍了Python基础、网络爬虫基础、Scrapy框架及基本的爬虫功能。第5~10章为进阶篇,介绍了如何将爬虫数据存储于MySQL、MongoDB和Redis数据库中;如何实现异步的Ajax数据的爬取;如何使用Selenium和Splash实现动态网站的爬取;如何实现模拟登录功能;如何突破反爬虫技术,以及如何实现文件和图片的下载。第11~13章为高级篇,介绍了使用Scrapy-Redis实现分布式爬虫;使用Scrapyd和Docker部署分布式爬虫;使用Gerapy管理分布式爬虫,并实现了一个抢票软件的综合项目。 本书适合爬虫初学者、爬虫爱好者及高校相关学生,也适合数据爬虫工程师作为参考读物,同时也适合各大院校和培训机构作为教材使用。 ---------------------------Python爬虫开发与项目实战--------------------------- 随着大数据时代到来,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,本书从基本的爬虫原理开始讲解,通过介绍Pthyon编程语言和Web前端基础知识引领读者入门,之后介绍动态爬虫原理以及Scrapy爬虫框架,最后介绍大规模数据下分布式爬虫的设计以及PySpider爬虫框架等。 主要特点: l 由浅入深,从Python和Web前端基础开始讲起,逐步加深难度,层层递进。 l 内容详实,从静态网站到动态网站,从单机爬虫到分布式爬虫,既包含基础知识点,又讲解了关键问题和难点分析,方便读者完成进阶。 l 实用性强,本书共有9个爬虫项目,以系统的实战项目为驱动,由浅及深地讲解爬虫开发中所需的知识和技能。 难点详析,对js加密的分析、反爬虫措施的突破、去重方案的设计、分布式爬虫的开发进行了细致的讲解。 .
目录



---------------------------从零开始学Scrapy网络爬虫(视频教学版)---------------------------


前言
第1篇 基础篇
第1章 Python基础 2
1.1 Python简介 2
1.1.1 Python简史 2
1.1.2 搭建Python环境 3
1.1.3 安装PyCharm集成开发环境 6
1.2 Python基本语法 7
1.2.1 基本数据类型和运算 7
1.2.2 运算符和表达式 8
1.2.3 条件判断语句 9
1.2.4 循环语句 10
1.2.5 字符串 12
1.3 Python内置数据结构 14
1.3.1 列表 15
1.3.2 字典 16
1.3.3 元组 17
1.3.4 遍历对象集合 17
1.4 Python模块化设计 18
1.4.1 函数 18
1.4.2 迭代器(iterator) 20
1.4.3 生成器(Generator) 20
1.4.4 类和对象 22
1.4.5 文件与异常 23
1.5 本章小结 25
第2章 网络爬虫基础 26
2.1 HTTP基本原理 26
2.1.1 URL介绍 27
2.1.2 HTTP和HTTPS协议 27
2.1.3 HTTP请求(Request) 27
2.1.4 HTTP响应(Response) 30
2.2 网页基础 32
2.2.1 HTML文档 33
2.2.2 网页的结构 33
2.2.3 节点树及节点之间的关系 34
2.3 使用XPath提取网页信息 36
2.3.1 XPath介绍 36
2.3.2 XPath常用路径表达式 36
2.3.3 XPath带谓语的路径表达式 39
2.4 本章小结 40
第3章 Scrapy框架介绍 41
3.1 网络爬虫原理 41
3.1.1 爬虫执行的流程 41
3.2 Scrapy框架结构及执行流程 42
3.2.1 Scrapy框架结构 42
3.2.2 Scrapy执行流程 44
3.3 Scrapy安装 44
3.3.1 使用pip安装Scrapy 44
3.3.2 常见安装错误 45
3.3.3 验证安装 46
3.4 第一个网络爬虫 46
3.4.1 需求分析 46
3.4.2 创建项目 47
3.4.3 分析页面 48
3.4.4 实现Spider爬虫功能 49
3.4.5 运行爬虫 50
3.4.6 常见问题 51
3.5 本章小结 52
第4章 Scrapy网络爬虫基础 53
4.1 使用Spider提取数据 53
4.1.1 Spider组件介绍 53
4.1.2 重写start_requests()方法 55
4.1.3 Request对象 57
4.1.4 使用选择器提取数据 58
4.1.5 Response对象与XPath 59
4.1.6 Response对象与CSS 61
4.1.7 进一步了解Response对象 62
4.1.8 多页数据的爬取 63
4.2 使用Item封装数据 64
4.2.1 定义Item和Field 65
4.2.2 使用ItemLoader填充容器 66
4.3 使用Pipeline处理数据 69
4.3.1 Item Pipeline介绍 70
4.3.2 编写自己的Item Pipeline 70
4.3.3 启用Item Pipeline 71
4.3.4 多个Item Pipeline 71
4.3.5 保存为其他类型文件 72
4.4 项目案例:爬取链家网二手房信息 75
4.4.1 项目需求 75
4.4.2 技术分析 76
4.4.3 代码实现及解析 77
4.5 本章小结 85
第2篇 进阶篇
第5章 数据库存储 88
5.1 MySQL数据库 88
5.1.1 关系型数据库概述 88
5.1.2 下载和安装MySQL数据库 88
5.1.3 数据库管理工具Navicat 92
5.1.4 Python访问MySQL数据库 94
5.1.5 项目案例 97
5.2 MongoDB数据库 100
5.2.1 NoSQL概述 100
5.2.2 MongoDB介绍 100
5.2.3 MongoDB的下载和安装 101
5.2.4 Python访问MongoDB数据库 102
5.2.5 项目案例 108
5.3 Redis数据库 111
5.3.1 Redis的下载和安装 111
5.3.2 Python访问Redis 113
5.3.3 项目案例 118
5.4 本章小结 121
第6章 JavaScript与AJAX数据爬取 122
6.1 JavaScript简介 122
6.2 项目案例:爬取QQ音乐榜单歌曲 122
6.2.1 项目需求 122
6.2.2 技术分析 123
6.2.3 代码实现及解析 126
6.2.4 更常见的动态网页 128
6.3 AJAX简介 129
6.4 项目案例:爬取豆瓣电影信息 130
6.4.1 项目需求 130
6.4.2 技术分析 130
6.4.3 代码实现及解析 133
6.5 本章小结 135
第7章 动态渲染页面的爬取 136
7.1 Selenium实现动态页面爬取 136
7.1.1 Selenium安装 136
7.1.2 Selenium简单实现 137
7.1.3 Selenium语法 138
7.2 项目案例:爬取今日头条热点新闻 145
7.2.1 项目需求 145
7.2.2 技术分析 145
7.2.3 代码实现及解析 147
7.3 Splash实现动态页面爬取 151
7.3.1 Splash介绍 151
7.3.2 Splash环境搭建 152
7.3.3 Splash模块介绍 156
7.4 项目案例:爬取一号店中的iPhone手机信息 162
7.4.1 项目需求 162
7.4.2 技术分析 163
7.4.3 代码实现及解析 165
7.5 本章小结 168
第8章 模拟登录 169
8.1 模拟登录解析 169
8.1.1 登录过程解析 169
8.1.2 模拟登录的实现 171
8.2 验证码识别 174
8.2.1 使用OCR识别验证码 174
8.2.2 处理复杂验证码 176
8.2.3 五花八门的验证码 177
8.3 Cookie自动登录 177
8.3.1 Cookie介绍 178
8.3.2 获取Cookie的库—browsercookie 179
8.4 项目案例:爬取起点中文网某用户的书架信息 180
8.4.1 项目需求 180
8.4.2 技术分析 180
8.4.3 代码实现及解析 182
8.5 本章小结 184
第9章 突破反爬虫技术 185
9.1 反爬虫技术及突破措施 185
9.2 伪装成不同的浏览器 187
9.2.1 UserAgentMiddleware中间件介绍 187
9.2.2 实现伪装成随机浏览器 188
9.2.3 更简单的方法 191
9.3 使用HTTP代理服务器 192
9.3.1 HTTP代理服务器 192
9.3.2 获取免费代理 193
9.3.3 实现随机代理 199
9.4 本章小结 202
第10章 文件和图片下载 203
10.1 文件下载 203
10.1.1 FilesPipeline执行流程 203
10.2 项目案例:爬取seaborn案例源文件 204
10.2.1 项目需求 204
10.2.2 技术分析 206
10.2.3 代码实现及解析 206
10.2.4 更多功能 211
10.3 图片下载 212
10.4 项目案例:爬取摄图网图片 213
10.4.1 项目需求 213
10.4.2 技术分析 215
10.4.3 代码实现及解析 215
10.5 本章小结 221
第3篇 高级篇
第11章 Scrapy-Redis实现分布式爬虫 224
11.1 分布式爬虫原理 224
11.2 Scrapy-Redis实现分布式爬虫分析 225
11.2.1 实现分布式爬虫思路 225
11.2.2 Scrapy-Redis代码解析 226
11.2.3 分布式爬虫功能配置 231
11.3 项目案例:分布式爬虫爬取摄图网图片 233
11.3.1 技术分析 233
11.3.2 代码实现及解析 234
11.4 本章小结 237
第12章 Scrapyd部署分布式爬虫 238
12.1 使用Scrapyd部署分布式爬虫 238
12.1.1 Scrapyd的安装及运行 238
12.1.2 Scrapyd功能介绍 241
12.2 使用Scrapyd-Client批量部署 244
12.3 使用Docker部署分布式爬虫 248
12.4 使用Gerapy管理分布式爬虫 253
12.5 本章小结 258
第13章 综合项目:抢票软件的实现 259
13.1 项目需求 259
13.2 技术分析 262
13.3 项目实现及解析 263
13.3.1 搭建Scrapy项目框架 263
13.3.2 实现获取站点信息的爬虫 264
13.3.3 实现站点处理类 266
13.3.4 实现购票类 267
13.3.5 实现购票功能 280
13.3.6 运行项目 282
13.3.7 优化项目 282
13.4 本章小结 283



---------------------------Python爬虫开发与项目实战---------------------------


前言
基础篇
第1章 回顾Python编程 2
1.1 安装Python 2
1.1.1 Windows上安装Python 2
1.1.2 Ubuntu上的Python 3
1.2 搭建开发环境 4
1.2.1 Eclipse+PyDev 4
1.2.2 PyCharm 10
1.3 IO编程 11
1.3.1 文件读写 11
1.3.2 操作文件和 14
1.3.3 序列化操作 15
1.4 进程和线程 16
1.4.1 多进程 16
1.4.2 多线程 22
1.4.3 协程 25
1.4.4 分布式进程 27
1.5 网络编程 32
1.5.1 TCP编程 33
1.5.2 UDP编程 35
1.6 小结 36
第2章 Web前端基础 37
2.1 W3C标准 37
2.1.1 HTML 37
2.1.2 CSS 47
2.1.3 JavaScript 51
2.1.4 XPath 56
2.1.5 JSON 61
2.2 HTTP标准 61
2.2.1 HTTP请求过程 62
2.2.2 HTTP状态码含义 62
2.2.3 HTTP头部信息 63
2.2.4 Cookie状态管理 66
2.2.5 HTTP请求方式 66
2.3 小结 68
第3章 初识网络爬虫 69
3.1 网络爬虫概述 69
3.1.1 网络爬虫及其应用 69
3.1.2 网络爬虫结构 71
3.2 HTTP请求的Python实现 72
3.2.1 urllib2/urllib实现 72
3.2.2 httplib/urllib实现 76
3.2.3 更人性化的Requests 77
3.3 小结 82
第4章 HTML解析大法 83
4.1 初识Firebug 83
4.1.1 安装Firebug 84
4.1.2 强大的功能 84
4.2 正则表达式 95
4.2.1 基本语法与使用 96
4.2.2 Python与正则 102
4.3 强大的BeautifulSoup 108
4.3.1 安装BeautifulSoup 108
4.3.2 BeautifulSoup的使用 109
4.3.3 lxml的XPath解析 124
4.4 小结 126
第5章 数据存储(无数据库版) 127
5.1 HTML正文抽取 127
5.1.1 存储为JSON 127
5.1.2 存储为CSV 132
5.2 多媒体文件抽取 136
5.3 Email提醒 137
5.4 小结 138
第6章 实战项目:基础爬虫 139
6.1 基础爬虫架构及运行流程 140
6.2 URL管理器 141
6.3 HTML下载器 142
6.4 HTML解析器 143
6.5 数据存储器 145
6.6 爬虫调度器 146
6.7 小结 147
第7章 实战项目:简单分布式爬虫 148
7.1 简单分布式爬虫结构 148
7.2 控制节点 149
7.2.1 URL管理器 149
7.2.2 数据存储器 151
7.2.3 控制调度器 153
7.3 爬虫节点 155
7.3.1 HTML下载器 155
7.3.2 HTML解析器 156
7.3.3 爬虫调度器 157
7.4 小结 159
中级篇
第8章 数据存储(数据库版) 162
8.1 SQLite 162
8.1.1 安装SQLite 162
8.1.2 SQL语法 163
8.1.3 SQLite增删改查 168
8.1.4 SQLite事务 170
8.1.5 Python操作SQLite 171
8.2 MySQL 174
8.2.1 安装MySQL 174
8.2.2 MySQL基础 177
8.2.3 Python操作MySQL 181
8.3 更适合爬虫的MongoDB 183
8.3.1 安装MongoDB 184
8.3.2 MongoDB基础 187
8.3.3 Python操作MongoDB 194
8.4 小结 196
第9章 动态网站抓取 197
9.1 Ajax和动态HTML 197
9.2 动态爬虫1:爬取影评信息 198
9.3 PhantomJS 207
9.3.1 安装PhantomJS 207
9.3.2 快速入门 208
9.3.3 屏幕捕获 211
9.3.4 网络监控 213
9.3.5 页面自动化 214
9.3.6 常用模块和方法 215
9.4 Selenium 218
9.4.1 安装Selenium 219
9.4.2 快速入门 220
9.4.3 元素选取 221
9.4.4 页面操作 222
9.4.5 等待 225
9.5 动态爬虫2:爬取去哪网 227
9.6 小结 230
第10章 Web端协议分析 231
10.1 网页登录POST分析 231
10.1.1 隐藏表单分析 231
10.1.2 加密数据分析 234
10.2 验证码问题 246
10.2.1 IP代理 246
10.2.2 Cookie登录 249
10.2.3 传统验证码识别 250
10.2.4 人工打码 251
10.2.5 滑动验证码 252
10.3 www>m>wap 252
10.4 小结 254
第11章 终端协议分析 255
11.1 PC客户端抓包分析 255
11.1.1 HTTP Analyzer简介 255
11.1.2 虾米音乐PC端API实战分析 257
11.2 App抓包分析 259
11.2.1 Wireshark简介 259
11.2.2 酷我听书App端API实战分析 266
11.3 API爬虫:爬取mp3资源信息 268
11.4 小结 272
第12章 初窥Scrapy爬虫框架 273
12.1 Scrapy爬虫架构 273
12.2 安装Scrapy 275
12.3 创建cnblogs项目 276
12.4 创建爬虫模块 277
12.5 选择器 278
12.5.1 Selector的用法 278
12.5.2 HTML解析实现 280
12.6 命令行工具 282
12.7 定义Item 284
12.8 翻页功能 286
12.9 构建Item Pipeline 287
12.9.1 定制Item Pipeline 287
12.9.2 激活Item Pipeline 288
12.10 内置数据存储 288
12.11 内置图片和文件下载方式 289
12.12 启动爬虫 294
12.13 强化爬虫 297
12.13.1 调试方法 297
12.13.2 异常 299
12.13.3 控制运行状态 300
12.14 小结 301
第13章 深入Scrapy爬虫框架 302
13.1 再看Spider 302
13.2 Item Loader 308
13.2.1 Item与Item Loader 308
13.2.2 输入与输出处理器 309
13.2.3 Item Loader Context 310
13.2.4 重用和扩展Item Loader 311
13.2.5 内置的处理器 312
13.3 再看Item Pipeline 314
13.4 请求与响应 315
13.4.1 Request对象 315
13.4.2 Response对象 318
13.5 下载器中间件 320
13.5.1 激活下载器中间件 320
13.5.2 编写下载器中间件 321
13.6 Spider中间件 324
13.6.1 激活Spider中间件 324
13.6.2 编写Spider中间件 325
13.7 扩展 327
13.7.1 配置扩展 327
13.7.2 定制扩展 328
13.7.3 内置扩展 332
13.8 突破反爬虫 332
13.8.1 UserAgent池 333
13.8.2 禁用Cookies 333
13.8.3 设置下载延时与自动限速 333
13.8.4 代理IP池 334
13.8.5 Tor代理 334
13.8.6 分布式下载器:Crawlera 337
13.8.7 Google cache 338
13.9 小结 339
第14章 实战项目:Scrapy爬虫 340
14.1 创建知乎爬虫 340
14.2 定义Item 342
14.3 创建爬虫模块 343
14.3.1 登录知乎 343
14.3.2 解析功能 345
14.4 Pipeline 351
14.5 优化措施 352
14.6 部署爬虫 353
14.6.1 Scrapyd 354
14.6.2 Scrapyd-client 356
14.7 小结 357
深入篇
第15章 增量式爬虫 360
15.1 去重方案 360
15.2 BloomFilter算法 361
15.2.1 BloomFilter原理 361
15.2.2 Python实现BloomFilter 363
15.3 Scrapy和BloomFilter 364
15.4 小结 366
第16章 分布式爬虫与Scrapy 367
16.1 Redis基础 367
16.1.1 Redis简介 367
16.1.2 Redis的安装和配置 368
16.1.3 Redis数据类型与操作 372
16.2 Python和Redis 375
16.2.1 Python操作Redis 375
16.2.2 Scrapy集成Redis 384
16.3 MongoDB集群 385
16.4 小结 390
第17章 实战项目:Scrapy分布式爬虫 391
17.1 创建云起书院爬虫 391
17.2 定义Item 393
17.3 编写爬虫模块 394
17.4 Pipeline 395
17.5 应对反爬虫机制 397
17.6 去重优化 400
17.7 小结 401
第18章 人性化PySpider爬虫框架 403
18.1 PySpider与Scrapy 403
18.2 安装PySpider 404
18.3 创建豆瓣爬虫 405
18.4 选择器 409
18.4.1 PyQuery的用法 409
18.4.2 解析数据 411
18.5 Ajax和HTTP请求 415
18.5.1 Ajax爬取 415
18.5.2 HTTP请求实现 417
18.6 PySpider和PhantomJS 417
18.6.1 使用PhantomJS 418
18.6.2 运行JavaScript 420
18.7 数据存储 420
18.8 PySpider爬虫架构 422
18.9 小结 423



有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4