JetBrains大中华区市场部经理赵磊作序!超过300个实战案例,10万行源代码(关注作者公众号下载,下载说明见书中第1章首页),22个综合实战项目,海量学习资料,1000套中英文简历模板。全书内容涵盖:
李宁 “私房菜谱”
Python爬虫基础知识
Python网络库
Python解析库
Python数据存储
Python异步数据抓取
Python移动App数据抓取
Python可见即可爬
Python Scrapy实战
Python项目实战
李宁“实战项目”
抓取小说目录与正文
抓取豆瓣网图书榜单
抓取房屋租赁信息
抓取豆瓣网音乐排行榜
抓取百度网站图片搜索中的图片
抓取QQ空间说说
可视化爬虫抓取和分析网店图书评论
《Python爬虫技术:深入理解原理、技术与开发》从实战角度系统讲解Python爬虫的核心知识点,并通过大量的真实项目让读者熟练掌握Python爬虫技术。Python爬虫技术:深入理解原理、技术与开发》用20多个实战案例,完美演绎了使用各种技术编写Python爬虫的方式,读者可以任意组合这些技术,完成非常复杂的爬虫应用。《Python爬虫技术:深入理解原理、技术与开发》共20章,分为5篇。第1篇基础知识(第1、2章),主要包括Python运行环境的搭建、HTTP基础、网页基础(HTML、CSS、JavaScript等)、爬虫的基本原理、Session与Cookie。第2篇网络库(第3~6章),主要包括网络库urllib、urllib3、requests和Twisted的核心使用方法,如发送HTTP请求、处理超时、设置HTTP请求头、搭建和使用代理、解析链接、Robots协议等。第3篇解析库(第7~10章),主要包括3个常用解析库(lxml、BeautifulSoup和pyquery)的使用方法,同时介绍多种用于分析HTML代码的技术,如正则表达式、XPath、CSS选择器、方法选择器等。第4篇数据存储(第11、12章),主要包括Python中数据存储的解决方案,如文件存储和数据库存储,其中数据库存储包括多种数据库,如本地数据库SQLite、网络数据库MySQL以及文档数据库MongoDB。第5篇爬虫高级应用(第13~20章),主要包括Python爬虫的一些高级技术,如抓取异步数据、Selenium、Splash、抓取移动App数据、Appium、多线程爬虫、爬虫框架Scrapy,最后给出一个综合的实战案例,综合了Python爬虫、数据存储、PyQt5、多线程、数据可视化、Web等多种技术实现一个可视化爬虫。
《Python爬虫技术:深入理解原理、技术与开发》可以作为广大计算机软件技术开发者、互联网技术研究人员学习“爬虫技术”的参考用书。也可以作为高等院校计算机科学与技术、软件工程、人工智能等专业的教学参考用书。
第1篇基础知识
第1章开发环境配置 2
1.1 安装官方的 Python运行环境 2
1.2 配置 PATH环境变量 5
1.3 安装 Anaconda Python开发环境 6
1.4 安装 PyCharm 7
1.5 配置 PyCharm 8
第2章爬虫基础 11
2.1 HTTP基础 11
...
2.2 网页基础 23
2.2.1 HTML 23
...
2.3 爬虫的基本原理 27
2.3.1 爬虫的分类 27
2.3.2 爬虫抓取数据的方式和手段 28
2.4 Session与 Cookie 28
2.4.1 静态页面和动态页面 29
2.4.2 无状态 HTTP与 Cookie 30
...
2.5 实战案例:抓取所有的网络资源 33
2.6 实战案例:抓取博客文章列表 37
第 2篇网络库
第 3章网络库 urllib 42
3.1 urllib简介 42
3.2 发送请求与获得响应 43
3.2.1 用 urlopen函数发送 HTTP GET请求 43
...
3.2.8 读取和设置 Cookie 56
3.3 异常处理 60
...
3.4 解析链接 62
3.4.1 拆分与合并 URL(urlparse与 urlunparse) 62
...
3.4.6 参数转换(parse_qs与 parse_qsl) 66
3.5 Robots协议 67
3.5.1 Robots协议简介 67
3.5.2 分析 Robots协议 68
第 4章网络库 urllib3 70
4.1 urllib3简介 70
4.2 urllib3模块 70
4.3 发送 HTTP GET请求 71
4.4 发送 HTTP POST请求 72
4.5 HTTP请求头 74
4.6 HTTP响应头 76
4.7 上传文件 76
4.8 超时 78
第 5章网络库 requests 80
5.1 基本用法 80
5.1.1 requests的 HelloWorld 81
...
5.1.6 响应数据 85
5.2 高级用法 87
5.2.1 上传文件 88
...
5.2.8 将请求打包 97
第 6章 Twisted网络框架 99
6.1 异步编程模型 99
6.2 Reactor(反应堆)模式 101
...
6.5 用 Twisted实现时间戳服务端 104
第 3篇解析库
第 7章正则表达式 108
7.1 使用正则表达式 108
7.1.1 使用 match方法匹配字符串 108
7.1.2 使用 search方法在一个字符串中查找模式 109
7.1.3 匹配多个字符串 110
...
7.1.11 使用 split分隔字符串 122
7.2 一些常用的正则表达式 123
7.3 项目实战:抓取小说目录和全文 124
7.4 项目实战:抓取猫眼电影 Top100榜单 128
7.5 项目实战:抓取糗事百科网的段子 133
第 8章 lxml与 XPath 137
8.1 lxml基础 137
8.1.1 安装 lxml 137
8.1.2 操作 XML 138
8.1.3 操作 HTML 140
8.2 XPath 141
8.2.1 XPath概述 141
...
8.2.11 使用 Chrome验证 XPath 153
8.3 项目实战:抓取豆瓣 Top250图书榜单 154
8.4 项目实战:抓取起点中文网的小说信息 158
第 9章 Beautiful Soup库 162
9.1 Beautiful Soup简介 162
9.2 Beautiful Soup基础 162
9.2.1 安装 Beautiful Soup 163
...
9.2.3 编写第一个 Beautiful Soup程序 164
9.3 节点选择器 165
9.3.1 选择节点 165
... ...
9.3.5 选择兄弟节点 172
9.4 方法选择器 174
...
9.5 CSS选择器 178
9.5.1 基本用法 179
...
9.5.4 通过浏览器获取 CSS选择器代码 182
9.6 实战案例:抓取租房信息 184
9.7 实战案例:抓取酷狗网络红歌榜 188
第 10章 pyquery库 192
10.1 pyquery简介 192
10.2 pyquery基础 192
10.2.1 安装 pyquery 193
10.2.2 pyquery的基本用法 193
10.3 CSS选择器 194
10.4 查找节点 196
...
10.4.4 获取节点信息 199
10.5 修改节点 203
...
10.5.3 删除节点 207
10.6 伪类选择器 208
10.7 项目实战:抓取当当图书排行榜 210
10.8 项目实战:抓取京东商城手机销售排行榜 213
第 4篇数据存储
第 11章文件存储 222
11.1 打开文件 222
11.2 操作文件的基本方法 224
...
11.2.2 读行和写行 226
11.3 使用 FileInput对象读取文件 227
11.4 处理 XML格式的数据 228
...
11.5 处理 JSON格式232
...
11.6 将 JSON字符串转换为 XML字符串 237
...
第 12章数据库存储. 242
12.1 SQLite数据库 242
12.2 MySQL数据库 247
12.3 非关系型数据库 253
...
12.4 项目实战:抓取豆瓣音乐排行榜 256
12.5 项目实战:抓取豆瓣电影排行榜 260
第 5篇爬虫高级应用
第 13章抓取异步数据 266
13.1 异步加载与 AJAX 266
13.2 基本原理 267
13.3 逆向工程 270
13.4 提取结果 274
13.5 项目实战:支持搜索功能的图片爬虫 274
13.6 项目实战:抓取京东图书评价 279
第 14章可见即可爬:Selenium 285
14.1 安装 Selenium 286
14.2 安装 WebDriver 286
...
14.2.3 安装其他浏览器的 WebDriver 289
14.3 Selenium的基本使用方法 289
14.4 查找节点 293
14.4.1 查找单个节点 293
...
...
14.10 改变节点的属性值 304
14.11 项目实战:抓取 QQ空间说说的内容 306
第 15章基于 Splash的爬虫 309
15.1 Splash基础 309
...
15.2 Splash Lua脚本 312
...
15.3 使用 CSS选择器 331
...
15.4 模拟鼠标和键盘的动作 333
15.5 Splash HTTP API 334
15.6 项目实战:使用 Splash Lua抓取京东搜索结果 338
第 16章抓取移动 App的数据 341
16.1 使用 Charles 341
...
16.2 使用 mitmproxy 348
...
16.3 项目实战:实时抓取“得到” App在线课程 363
第 17章使用 Appium在移动端抓取数据 368
17.1 安装 Appium 368
...
17.2 Appium的基本使用方法 372
...
17.3 使用 Python控制手机 App 379
17.4 AppiumPythonClient API 380
...
17.5 项目实战:利用 Appium抓取微信朋友圈信息 384
第 18章多线程和多进程爬虫 389
18.1 线程与进程 389
...
18.1.2 线程 390
18.2 Python与线程 390
18.2.1 使用单线程执行程序 390
...
18.2.4 线程和锁 394
18.3 高级线程模块(threading) 395
...
18.3.3 从 Thread类继承 398
18.4 线程同步 399
...
18.4.2 信号量 402
18.5 生产者—消费者问题与 queue模块 405
18.6 多进程 407
18.7 项目实战:抓取豆瓣音乐 Top250排行榜(多线程版) 408
18.8 项目实战:抓取豆瓣音乐 Top250排行榜(多进程版) 411
第 19章网络爬虫框架:Scrapy 413
19.1 Scrapy基础知识 413
...
19.1.3 Scrapy Shell抓取 Web资源 415
19.2 用 Scrapy编写网络爬虫 417
...
19.3 Scrapy的高级应用 431
...
19.3.8 通用爬虫 465
第 20章 综合爬虫项目:可视化爬虫 475
20.1 项目简介 475
20.2 主界面设计和实现 477
...
20.6 情感分析 484
20.7 抓取和分析商品评论数据 485
20.8 可视化评论数据 486
★《Python爬虫技术——深入理解原理、技术与开发》一书诠释了Python爬虫的核心开发技术。不管是“菜鸟”还是“高手”,都可从本书受益。更难能可贵的是,本书提供了大量的实战案例,通过各种爬虫技术抓取的不同种类的信息和实战,读者可以更好地掌握爬虫应用的编写过程。
——金晓颖触控科技有限公司副总裁
★李宁是51CTO学院讲师、51CTO学院专家级博主,在IT技术领域有很深的造诣。他授课风趣幽默,讲解条理清晰、通俗易懂,对如何学习编程技术有独到见解。他在51CTO学院已开设了160多门视频课程,学员达170多万人,视频课程广受好评。一个如此受欢迎的老师,他编写的图书也非常值得阅读。更重要的是,本书配套提供了大量的实战项目、源代码、练习题,能方便读者快速实践,所以强烈推荐此书!
——曹亚莉51GTO学院教学总监
★看到李宁老师的30多本图书和160多门视频课程,我不禁惊叹于他如此强大的能力、精力和毅力。在51CTO学院,李宁老师的听课人数达到170多万。他编写的图书更是紧跟IT技术发展潮流,这本《Python爬虫技术——深入理解原理、技术与开发》也是顺应时代发展的大作。全书内容涵盖了基础知识、高级编程、理论知识与典型应用,是学习Python编程的优秀教材。
——韩立刚51CTO学院讲师
★《Python爬虫技术——深入理解原理、技术与开发》一书体现了李宁老师一贯的个人教学风格。书中知识全面,案例丰富,是Python初学者难得的入门好书!推荐阅读!
——谢星曼(网名阿蜜果)软通动力资深架构师
★李宁老师工作勤奋,技术精湛。他录制了大量优秀的IT视频课程,Python视频课程是其中的代表作。Python是目前受欢迎的编程语言,而Python爬虫是Python应用*火的领域。毫无疑问,《Python爬虫技术——深入理解原理、技术与开发》是一本好的Python爬虫实践指南。
——朱有鹏朱老师物联网大讲堂创始人
★《Python爬虫技术——深入理解原理、技术与开发》是一本经典的Python爬虫高级教程,本书层次鲜明,结构严谨,内容翔实,可以带领读者快速掌握Python爬虫的核心知识,帮助读者编写解决实际问题的代码并开发复杂项目。
——江清清嘎嘎软件科技公司总经理