新書推薦:
《
威尔士史:历史与身份的演进
》
售價:NT$
490.0
《
黄金、石油和牛油果:16件商品中的拉丁美洲发展历程
》
售價:NT$
395.0
《
母亲的选择:看不见的移民保姆与女性工作
》
售價:NT$
340.0
《
城邦政治与灵魂政治——柏拉图《理想国》中的政治哲学研究
》
售價:NT$
590.0
《
3分钟漫画墨菲定律:十万个为什么科普百科思维方式心理学 胜天半子人定胜天做事与成事的权衡博弈之道
》
售價:NT$
249.0
《
1911:危亡警告与救亡呼吁
》
售價:NT$
349.0
《
旷野人生:吉姆·罗杰斯的全球投资探险
》
售價:NT$
345.0
《
笼中王国 : 18世纪法国的珍禽异兽与社会文化
》
售價:NT$
340.0
|
編輯推薦: |
紧扣学生为中心的主线,在教材中融入课程思政元素,培养爱党爱国、爱岗敬业、高素质高技能的软件人才。
使用项目驱动的形式编写,每个项目涵盖了不同的知识与技能点,各个项目按“任
务目标”“知识内容”“案例实践”的结构编写。
名校名师20余年授课经验集结成书
|
內容簡介: |
本书以Python语言为基础,介绍了爬虫的基础知识。本书包括6个实战项目,分别为爬取外汇网站数据、爬取名言网站数据、爬取电影网站数据、爬取图书网站数据、爬取商城网站数据、爬取景区网站数据,通过这些项目讲解了Python的Web访问技术、BeautifulSoup的数据分析与提取技术、深度优先与广度优先顺序爬取技术、多线程网页爬取技术、scrapy分布式爬取框架技术、selenium爬虫程序技术、AWS中的DynamoDB数据库的NoSQL存储技术等。本书每个项目都遵循由浅入深的学习规律,采取理论与实践相结合的方式来引导读者完成实战。
本书可作为计算机软件技术专业及其相关专业的程序设计课程教材。
|
關於作者: |
黄锐军, 深圳信息职业技术学院软件学院副教授,研究生学历。主要从事计算机软件技术课程教学,有二十多年的职业教学经历。从事软件开发,先后为深圳市职业技能鉴定中心开发了序列应用软件。
|
目錄:
|
项目1 爬取外汇网站数据 1
1.1 项目任务 1
1.2 搭建爬虫程序开发环境 1
1.2.1 理解爬虫程序 2
1.2.2 搭建开发环境 2
1.3 使用Flask创建Web网站 3
1.3.1 安装Flask框架 3
1.3.2 创建模拟外汇网站 4
1.3.3 编写客户端程序并获取网站的HTML代码 5
1.4 使用GET方法访问Web网站 7
1.4.1 客户端使用GET方法发送数据 7
1.4.2 服务器端使用GET方法获取数据 8
1.5 使用POST方法访问Web网站 9
1.5.1 客户端使用POST方法发送数据 9
1.5.2 服务器端使用POST方法获取数据 10
1.5.3 混合使用GET与POST方法 11
1.6 使用正则表达式匹配数据 13
1.6.1 使用正则表达式匹配字符串 14
1.6.2 使用正则表达式爬取数据 17
1.7 综合项目 爬取模拟外汇网站数据 18
1.7.1 创建模拟外汇网站 18
1.7.2 解析网站的HTML代码 19
1.7.3 设计存储数据库 19
1.7.4 编写爬虫程序 20
1.7.5 执行爬虫程序 22
1.8 实战项目 爬取实际外汇网站数据 22
1.8.1 解析网站的HTML代码 22
1.8.2 爬取网站外汇汇率数据 24
1.8.3 设计存储数据库 25
1.8.4 编写爬虫程序 26
1.8.5 执行爬虫程序 28
项目总结 29
练习1 29
项目2 爬取名言网站数据 30
2.1 项目任务 30
2.2 使用BeautifulSoup装载HTML文档 30
2.2.1 创建模拟名言网站 31
2.2.2 安装BeautifulSoup程序包 32
2.2.3 装载HTML文档 32
2.3 使用BeautifulSoup查找HTML元素 34
2.3.1 使用find()函数查找 34
2.3.2 查找元素属性与文本 37
2.3.3 使用find_all()函数查找 38
2.3.4 使用高级查找 40
2.4 使用BeautifulSoup遍历文档元素 42
2.4.1 获取元素节点的父节点 42
2.4.2 获取元素节点的直接子节点 43
2.4.3 获取元素节点的所有子孙节点 44
2.4.4 获取元素节点的兄弟节点 45
2.5 BeautifulSoup支持使用CSS语法进行查找 46
2.5.1 使用CSS语法查找 47
2.5.2 使用属性的语法规则 48
2.5.3 使用select()查找子孙节点 49
2.5.4 使用select()查找直接子节点 49
2.5.5 使用select()查找兄弟节点 49
2.5.6 使用select_one()查找单一元素 50
2.6 综合项目 爬取模拟名言网站数据 51
2.6.1 创建模拟名言网站 51
2.6.2 爬取名言数据 51
2.6.3 设计存储数据库 52
2.6.4 编写爬虫程序 52
2.6.5 执行爬虫程序 54
2.7 实战项目 爬取实际名言网站
数据 55
2.7.1 解析网站的HTML代码 55
2.7.2 爬取全部页面的数据 56
2.7.3 编写爬虫程序 57
2.7.4 执行爬虫程序 59
项目总结 60
练习2 60
项目3 爬取电影网站数据 63
3.1 项目任务 63
3.2 简单爬取网站数据 64
3.2.1 创建模拟电影网站 65
3.2.2 爬取网站数据 66
3.2.3 编写爬虫程序 68
3.2.4 执行爬虫程序 69
3.3 递归爬取网站数据 69
3.3.1 创建模拟电影网站 69
3.3.2 解析电影网站结构 72
3.3.3 递归爬取电影网站数据 72
3.4 深度优先爬取网站数据 73
3.4.1 深度优先法 73
3.4.2 深度优先爬虫程序 74
3.5 广度优先爬取网站数据 75
3.5.1 广度优先法 75
3.5.2 广度优先爬虫程序 76
3.6 爬取翻页网站数据 77
3.6.1 使用Flask模板参数 77
3.6.2 创建翻页电影网站 81
3.6.3 编写爬虫程序 84
3.6.4 执行爬虫程序 85
3.7 爬取网站全部图像 86
3.7.1 创建模拟电影网站 86
3.7.2 使用单线程程序爬取图像 88
3.7.3 使用Python的多线程 90
3.7.4 使用多线程程序爬取图像 93
3.8 综合项目 爬取模拟电影网站数据 95
3.8.1 创建模拟电影网站 95
3.8.2 设计存储数据库 98
3.8.3 编写爬虫程序 99
3.8.4 执行爬虫程序 102
3.9 实战项目 爬取实际电影网站数据 103
3.9.1 解析电影网站的HTML代码 103
3.9.2 爬取电影网站数据 105
3.9.3 编写爬虫程序 107
3.9.4 执行爬虫程序 111
项目总结 112
练习3 112
项目4 爬取图书网站数据 113
4.1 项目任务 113
4.2 使用scrapy创建爬虫程序 115
4.2.1 创建网站服务器程序 115
4.2.2 安装scrapy框架 115
4.2.3 scrapy项目的创建 115
4.2.4 入口函数与入口地址 118
4.2.5 Python的yield语句 118
4.3 使用BeautifulSoup爬取数据 119
4.3.1 创建模拟图书网站 119
4.3.2 解析网站的HTML代码 120
4.3.3 爬取图书图像 121
4.3.4 编写爬虫程序 122
4.3.5 执行爬虫程序 123
4.4 使用XPath查找元素 123
4.4.1 scrapy的XPath简介 124
4.4.2 使用XPath查找HTML元素 125
4.4.3 使用XPath与BeautifulSoup 134
4.5 爬取关联网页数据 135
4.5.1 创建模拟图书网站 135
4.5.2 程序爬取网页的顺序 137
4.5.3 理解scrapy分布式 139
4.6 使用XPath爬取数据 140
4.6.1 创建模拟图书网站 140
4.6.2 解析网站的HTML代码 142
4.6.3 爬取图书图像 143
4.6.4 设计数据库存储 144
4.6.5 编写爬虫程序 144
4.6.6 执行爬虫程序 146
4.7 使用管道存储数据 147
4.7.1 创建模拟图书网站 147
4.7.2 编写数据字段类 149
4.7.3 编写爬虫程序类 150
4.7.4 编写数据管道类 151
4.7.5 设置scrapy的配置文件 153
4.7.6 执行爬虫程序 153
4.8 综合项目 爬取模拟图书网站数据 154
4.8.1 创建模拟图书网站 154
4.8.2 编写数据字段类 157
4.8.3 编写数据管道类 157
4.8.4 编写爬虫程序类 158
4.8.5 设置scrapy的配置文件 160
4.8.6 执行爬虫程序 160
4.9 实战项目 爬取实际图书网站数据 161
4.9.1 解析网站的HTML代码 161
4.9.2 爬取网站图书数据 164
4.9.3 实现自动翻页 165
4.9.4 编写爬虫程序 167
4.9.5 执行爬虫程序并查看爬取结果 170
项目总结 172
练习4 172
项目5 爬取商城网站数据 174
5.1 项目任务 174
5.2 使用selenium编写爬虫程序 176
5.2.1 JavaScript程序控制网页 176
5.2.2 普通爬虫程序的问题 177
5.2.3 安装selenium与Chrome驱动程序 178
5.2.4 编写selenium爬虫程序 178
5.3 使用selenium查找HTML元素 180
5.3.1 创建模拟商城网站 180
5.3.2 使用XPath查找元素 182
5.3.3 查找元素的文本与属性 182
5.3.4 使用id值查找元素 184
5.3.5 使用name属性值查找元素 184
5.3.6 使用CSS查找元素 184
5.3.7 使用tagName查找元素 185
5.3.8 使用文本查找超链接 186
5.3.9 使用class值查找元素 186
5.4 使用selenium实现用户登录 187
5.4.1 创建用户登录网站 187
5.4.2 使用元素动作 188
5.4.3 编写爬虫程序 189
5.4.4 执行JavaScript程序 191
5.5 使用selenium爬取Ajax网页数据 192
5.5.1 创建Ajax网站 192
5.5.2 理解selenium爬虫程序 194
5.5.3 编写爬虫程序 197
5.5.4 执行爬虫程序 198
5.6 使用selenium等待HTML元素 198
5.6.1 创建延迟模拟网站 199
5.6.2 编写爬虫程序 200
5.6.3 selenium强制等待 200
5.6.4 selenium隐式等待 201
5.6.5 selenium循环等待与显式等待 202
5.6.6 selenium显式等待形式 204
5.7 综合项目 爬取模拟商城网站数据 205
5.7.1 创建模拟商城网站 205
5.7.2 爬取网站数据并实现网页翻页 209
5.7.3 设计数据存储与图像存储 210
5.7.4 编写爬虫程序 211
5.7.5 执行爬虫程序 214
5.8 实战项目 爬取实际商城网站数据 215
5.8.1 解析网站的HTML代码 215
5.8.2 爬取网站数据 218
5.8.3 实现网页翻页 220
5.8.4 编写爬虫程序 222
5.8.5 执行爬虫程序 226
项目总结 228
练习5 228
项目6 爬取景区网站数据 230
6.1 项目任务 230
6.2 使用DynamoDB存储模拟景区网站数据 231
6.2.1 创建模拟景区网站 231
6.2.2 爬取网站数据 233
6.2.3 编写爬虫程序 234
6.2.4 执行爬虫程序 235
6.2.5 DynamoDB简介 235
6.3 登录AWS数据库 236
6.3.1 登录AWS 236
6.3.2 创建数据库表 238
6.4 DynamoDB数据库操作 240
6.4.1 存储数据 240
6.4.2 读取数据 241
6.4.3 修改数据 242
6.4.4 删除数据 243
6.4.5 扫描数据 243
6.4.6 删除数据库表 244
6.5 综合项目 爬取模拟景区网站数据 245
6.5.1 创建模拟景区网站 245
6.5.2 编写爬虫程序 245
6.5.3 执行爬虫程序 248
6.6 实战项目 爬取实际景区网站数据 249
6.6.1 解析网站的HTML代码 250
6.6.2 爬取网站景区数据 252
6.6.3 爬取全部页面的数据 254
6.6.4 设计存储数据库 255
6.6.5 编写爬虫程序 255
6.6.6 执行爬虫程序 259
项目总结 260
练习6 260
|
|