书籍详情
从零开始学Scrapy网络爬虫(视频教学版)
作者:张涛 著
出版社:机械工业出版社
出版时间:2019-09-01
ISBN:9787111634744
定价:¥99.00
购买这本书可以去
内容简介
本书从零开始,循序渐进地介绍了目前*流行的网络爬虫框架Scrapy。本书共13章。其中第1~4章为基础篇,介绍了Python基础、网络爬虫基础、Scrapy框架及基本的爬虫功能。第5~10章为进阶篇,介绍了如何将爬虫数据存储于MySQL、MongoDB和Redis数据库中;如何实现异步的Ajax数据的爬取;如何使用Selenium和Splash实现动态网站的爬取;如何实现模拟登录功能;如何突破反爬虫技术,以及如何实现文件和图片的下载。第11~13章为高级篇,介绍了使用Scrapy-Redis实现分布式爬虫;使用Scrapyd和Docker部署分布式爬虫;使用Gerapy管理分布式爬虫,并实现了一个抢票软件的综合项目。 本书适合爬虫初学者、爬虫爱好者及高校相关学生,也适合数据爬虫工程师作为参考读物,同时也适合各大院校和培训机构作为教材使用。
作者简介
张涛毕业于中国科学技术大学,获硕士学位。目前在科大讯飞从事人工智能教育培训与研究。加入科大讯飞之前,曾经在知名日资企业任职研发经理,负责日本大型证券系统的设计与开发。有7年大学课程改革与教学经验,主要研究方向为Python网络爬虫、数据分析和机器学习。
目录
前言
第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安装Scrapy44
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对象与XPath59
4.1.6 Response对象与CSS61
4.1.7 进一步了解Response对象62
4.1.8 多页数据的爬取63
4.2 使用Item封装数据64
4.2.1 定义Item和Field65
4.2.2 使用ItemLoader填充容器66
4.3 使用Pipeline处理数据69
4.3.1 Item Pipeline介绍70
4.3.2 编写自己的Item Pipeline70
4.3.3 启用Item Pipeline71
4.3.4 多个Item Pipeline71
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 数据库管理工具Navicat92
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访问Redis113
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的库—browsercookie179
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 项目需求20
第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安装Scrapy44
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对象与XPath59
4.1.6 Response对象与CSS61
4.1.7 进一步了解Response对象62
4.1.8 多页数据的爬取63
4.2 使用Item封装数据64
4.2.1 定义Item和Field65
4.2.2 使用ItemLoader填充容器66
4.3 使用Pipeline处理数据69
4.3.1 Item Pipeline介绍70
4.3.2 编写自己的Item Pipeline70
4.3.3 启用Item Pipeline71
4.3.4 多个Item Pipeline71
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 数据库管理工具Navicat92
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访问Redis113
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的库—browsercookie179
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 项目需求20
猜您喜欢