《Python爬虫从菜鸟到高手》[43M]百度网盘|pdf下载|亲测有效
《Python爬虫从菜鸟到高手》[43M]百度网盘|pdf下载|亲测有效

Python爬虫从菜鸟到高手 pdf下载

出版社 清华大学出版社京东自营官方旗舰店
出版年 2023-09
页数 390页
装帧 精装
评分 9.3(豆瓣)
8.99¥ 10.99¥

内容简介

本篇主要提供Python爬虫从菜鸟到高手电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

产品特色

编辑推荐

“私房菜谱”

 Python爬虫基础知识

 Python网络库

 Python解析库

 Python数据存储

 Python异步数据抓取

 Python Splash爬虫

 Python移动App数据抓取

 Python多线程爬虫

 Python可见即可“爬”

 Python Scrapy实战

 Python识别验证码

 Python项目实战

“实战项目”

 抓取小说目录与正文

 抓取豆瓣网图书榜单

 抓取房屋租赁信息

 抓取豆瓣网音乐排行榜

 抓取百度网站图片搜索中的图片

 检测滑动验证码

可视化爬虫抓取和分析图书评论


内容简介

本书从实战角度系统论述了Python 爬虫技术的核心知识,并通过大量的真实项目帮助读者深入掌握Python 爬虫技术及其实现。本书提供了大量实战案例,演绎采用各种技术编写Python 爬虫的方式。读者可以任意组合使用这些技术,完成非常复杂的爬虫应用。本书共20 章,分为五篇。第一篇:基础知识(第1~2 章),主要包括Python 编程环境的搭建、IDE 的安装和使用、HTTP 的基础知识、网页基础(HTML、CSS、JavaScript)、爬虫的基本原理、Session、Cookie。第二篇:网络库(第3~5 章),主要包括网络库urllib、urllib3 和requests 的核心使用方法,例如,发送HTTP 请求、处理超时、设置HTTP 请求头、处理中文字符、搭建和使用代理、解析链接、Robots 协议等。第三篇:解析库(第6~9 章),主要包括3 个常用解析库(lxml、Beautiful Soup 和pyquery)的使用方法,同时介绍了多种用于分析HTML 代码的技术,例如,正则表达式、XPath、CSS 选择器、方法选择器等。第四篇:数据存储(第10~11 章),主要包括Python 中数据存储的解决方案,如文件存储和SQLite 数据库。第五篇:爬虫高级应用(第12~20 章),主要包括Python 爬虫的一些高级技术,如抓取异步数据、Selenium、Splash、抓取移动App 数据、Appium、多线程爬虫、爬虫框架Scrapy、通过OpenCV 技术识别验证码;最后给出一个综合的实战案例,该案例综合了Python 爬虫、数据存储、PyQt、多线程、数据可视化、Web 等多种技术实现一个可视化爬虫。

作者简介

李宁 华为HDE(HUAWEI Developer Experts),UnityMarvel创始人,开放原子基金会银牌讲师,51CTO学堂金牌讲师,IT畅销书作者。从事软件研究和开发超过20年,长期从事编译器、人工智能、Python、JavaScript、Java及跨平台技术的研究和开发工作,曾出版超过40本IT图书。

精彩书评

唐佐林 OpenHarmony Python SIG 负责人,Py4OH框架作者

《Python爬虫从菜鸟到高手》面向初学者,通过案例驱动的方式逐步带领读者掌握爬虫基础技术,可作为数据挖掘及深度学习技术的前置技术图书使用。


李洋 蛟龙腾飞CEO/CTO,华为公司HDE,开放原子开源基金会开源大使

《Python爬虫从菜鸟到高手》全面系统地讲解了Python爬虫的相关知识,并配有大量插图、代码、视频等内容,具有极强的互动性,循序渐进的结构安排让读者容易动手实践,掌握Python爬虫技术,事半功倍。


钟洪发 51CTO学堂金牌讲师

《Python爬虫从菜鸟到高手》实践性强,知识体系完整。全书章节编排由浅入深,对初学者友好,同时也适合有基础的同学提升技能,讲解很详细,强烈推荐!


夏曹俊 捷帝科技公司创始人,华为公司HDE,51CTO学堂金牌讲师

《Python爬虫从菜鸟到高手》诠释了Python爬虫的核心开发技术。不管是“菜鸟”,还是“高手”,都可从本书受益。更难能可贵的是,本书提供了大量的实战案例和微课视频,通过各种爬虫的编程演练,快速掌握编程技术。

目录

第一篇基础知识

第1章开发环境配置.3

6分钟

1.1搭建Python编程环境3

1.1.1获取Python安装包.3

1.1.2安装Windows版的Python开发包4

1.1.3安装macOS版的Python开发包.4

1.1.4安装Linux版的Python开发包5

1.2安装AnacondaPython开发环境.5

1.3消除PythonREPL中的错误和警告.6

1.4安装PyCharm7

1.5配置PyCharm8

1.6小结9

第2章爬虫基础.10

10分钟

2.1HTTP基础.10

2.1.1URI和URL10

2.1.2超文本11

2.1.3HTTP与HTTPS11

2.1.4HTTP的请求过程.13

2.1.5请求16

2.1.6响应19

2.2网页基础.22

2.2.1HTML基础.22

2.2.2CSS基础23

2.2.3CSS选择器.23

2.2.4JavaScript.25

2.3爬虫的基本原理.25

2.3.1爬虫的分类26

2.3.2爬虫抓取数据的方式和手段26

2.4Session与Cookie27

6Python爬虫从菜鸟到高手

2.4.1静态页面和动态页面27

2.4.2无状态HTTP与Cookie.28

2.4.3利用Session和Cookie保持状态.28

2.4.4查看网站的Cookie29

2.4.5HTTP状态何时会失效30

2.5项目实战:抓取所有的网络资源31

实例2.1基于递归算法的爬虫的代码34

2.6项目实战:抓取博客文章列表.35

实例2.2抓取博客园首页文章列表的爬虫36

2.7小结38

第二篇网络库

第3章网络库urllib.41

39分钟

3.1urllib简介41

3.2发送请求与获得响应42

3.2.1用urlopen函数发送HTTPGET请求42

实例3.1使用HTTPResponse读取响应数据42

3.2.2用urlopen函数发送HTTPPOST请求.43

实例3.2使用urlopen函数发送HTTPPOST请求,并获得返回数据43

3.2.3请求超时.44

实例3.3捕捉urlopen函数的超时异常45

3.2.4设置HTTP请求头45

实例3.4修改和提交HTTP请求头45

3.2.5设置中文HTTP请求头.47

实例3.5设置和解码中文HTTP请求头.48

3.2.6请求基础验证页面49

实例3.6请求基础验证页面50

3.2.7搭建代理与使用代理53

实例3.7通过代理访问Web页面55

3.2.8读取和设置Cookie55

实例3.8读取Cookie56

实例3.9将Cookie保存为Mozille格式和LWP格式.57

实例3.10装载和发送Cookie.58

3.3异常处理.59

3.3.1URLError.59

实例3.11捕捉发送请求抛出的异常.59

3.3.2HTTPError60

目录7

实例3.12使用HTTPError类和URLError类捕捉异常.60

3.4解析链接.61

3.4.1拆分与合并URL方法一(urlparse与urlunparse)61

实例3.13使用urlparse函数和urlunparse函数拆分与合并URL62

3.4.2拆分与合并URL方法二(urlsplit与urlunsplit)63

实例3.14使用urlsplit函数和urlunsplit函数拆分与合并URL63

3.4.3连接URL(urljoin)64

实例3.15使用urljoin函数连接URL64

3.4.4URL编码(urlencode).65

实例3.16使用urlencode函数编码包含中文的URL.65

3.4.5编码与解码(quote与unquote)65

实例3.17使用quote函数和unquote对URL中的参数编码和解码65

3.4.6参数转换(parse_qs与parse_qsl)65

实例3.18拆分由多个参数组成的字符串.66

3.5Robots协议66

3.5.1Robots协议简介.66

3.5.2分析Robots协议68

实例3.19用robots.txt约束爬虫68

3.6小结69

第4章网络库urllib370

10分钟

4.1urllib3简介70

4.2urllib3模块70

4.3发送HTTPGET请求71

实例4.1获取百度的搜索结果71

4.4发送HTTPPOST请求72

实例4.2发送HTTPPOST请求,并接收返回结果.72

4.5HTTP请求头73

实例4.3搜索天猫商城中的数据.74

4.6HTTP响应头76

实例4.4获取并输出HTTP响应头信息.76

4.7上传文件.76

实例4.5将任意文件上传到服务端77

4.8超时78

实例4.6连接超时和读取超时78

4.9小结79

第5章网络库requests80

17分钟

5.1基本用法.80

8Python爬虫从菜鸟到高手

5.1.1requests的HelloWorld80

实例5.1发送HTTPGET请求,并获取响应的返回信息80

5.1.2HTTPGET请求81

实例5.2设置HTTPGET请求参数81

5.1.3添加HTTP请求头82

实例5.3设置HTTP请求头82

5.1.4抓取二进制数据.83

实例5.4抓取并保存图像.83

5.1.5HTTPPOST请求84

实例5.5发送HTTPPOST请求,并获取响应数据.84

5.1.6响应数据.84

实例5.6向简书发送HTTPGET请求,并输出响应结果85

5.2高级用法.85

5.2.1上传文件.86

实例5.7上传本地图像86

5.2.2处理Cookie87

实例5.8获取和发送Cookie87

5.2.3使用同一个会话(Session)88

实例5.9Session与Cookie密切配合维护会话88

5.2.4SSL证书验证89

实例5.10捕捉证书验证异常.89

5.2.5使用代理.92

实例5.11通过代理访问天猫首页,并输出响应内容92

5.2.6超时92

实例5.12连接超时和读取超时93

5.2.7身份验证.93

实例5.13发送Basic验证请求.94

5.2.8将请求打包94

实例5.14封装和发送请求94

5.3小结95

第三篇解析库

第6章正则表达式99

35分钟

6.1使用正则表达式.99

6.1.1使用match方法匹配字符串99

实例6.1利用match方法与group方法实现模式匹配99

6.1.2使用search方法在一个字符串中查找模式100

目录9

实例6.2使用match方法与search方法进行匹配和搜索100

6.1.3匹配多个字符串101

实例6.3择一匹配符与匹配和搜索.101

6.1.4匹配任何单个字符.102

实例6.4点符号的匹配与替换102

6.1.5使用字符集.103

实例6.5字符集和择一匹配符的用法和差别104

6.1.6重复、可选和特殊字符105

实例6.6各种匹配符号的用法106

6.1.7分组.108

实例6.7在正则表达式中使用分组.108

6.1.8匹配字符串的起始和结尾及单词边界.109

实例6.8匹配字符串的起始和结束位置及单词的边界.110

6.1.9使用findall函数和finditer函数查找每一次出现的位置.111

实例6.9使用findall函数和finditer函数搜索字符串.111

6.1.10用sub函数和subn函数搜索与替换113

实例6.10使用sub函数和subn函数搜索和替换字符串.113

6.1.11使用split函数分隔字符串.114

实例6.11使用split函数分隔字符串.114

6.2一些常用的正则表达式115

实例6.12使用Email、IP地址和Web地址的正则表达式.115

6.3项目实战:抓取小说目录和全文116

实例6.13抓取小说目录爬虫的完整实现118

6.4小结.120

第7章lxml与XPath121

28分钟

7.1lxml基础121

7.1.1安装lxml121

7.1.2操作XML.122

实例7.1使用lxml获取XML的节点文本和属性值122

7.1.3操作HTML124

实例7.2使用lxml获取HTML文档的节点文本和属性值124

7.2XPath125

7.2.1XPath概述125

7.2.2使用XPath125

实例7.3利用lxml和XPath提取HTML文件中的信息125

7.2.3选取所有节点127

实例7.4使用XPath选取HTML文件中的节点.127

7.2.4选取子节点.128

10Python爬虫从菜鸟到高手

实例7.5使用XPath根据规则选取节点129

7.2.5选取父节点.129

实例7.6使用XPath选取节点和父节点,并输出class属性值130

7.2.6属性匹配与获取130

实例7.7根据href属性过滤节点.130

7.2.7多属性匹配.131

实例7.8使用and和or选取节点.131

7.2.8按序选择节点132

实例7.9使用XPath和索引获取特定节点132

7.2.9节点轴选择.133

实例7.10使用XPath和节点轴选择方法获取特定的节点.133

7.2.10在Chrome中自动获得XPath代码135

实例7.11利用requests库抓取京东商城导航条文本.135

7.2.11使用Chrome验证XPath137

7.3项目实战:抓取豆瓣Top250图书榜单138

实例7.12抓取豆瓣Top250图书榜单爬虫完整实现141

7.4项目实战:抓取起点中文网的小说信息142

实例7.13抓取起点中文网小说信息爬虫完整实现.144

7.5小结.146

第8章BeautifulSoup库.147

24分钟

8.1BeautifulSoup简介.147

8.2BeautifulSoup基础.147

8.2.1安装BeautifulSoup.147

8.2.2选择解析器.148

8.2.3编写第一个BeautifulSoup程序.149

实例8.1使用BeautifulSoup分析HTML代码.149

8.3节点选择器.150

8.3.1选择节点150

实例8.2使用BeautifulSoup节点选择器获取特定节点的信息151

8.3.2嵌套选择节点152

实例8.3嵌套选择HTML文档中的节点.152

8.3.3选择子节点.153

实例8.4选取子节点和子孙节点154

8.3.4选择父节点.156

实例8.5获取a节点的父节点156

8.3.5选择兄弟节点157

实例8.6获取li节点的同级节点.158

8.4方法选择器.159

目录11

8.4.1find_all方法159

实例8.7使用find_all方法搜索ul节点和li节点.160

实例8.8根据属性值定位节点161

实例8.9通过节点内容定位文本节点162

8.4.2find方法163

实例8.10搜索特定条件的节点.163

8.5CSS选择器164

8.5.1基本用法164

实例8.11使用CSS选择器查询特定的节点.164

8.5.2嵌套选择节点165

实例8.12混合使用CSS选择器和方法选择器搜索特定节点165

8.5.3获取属性值与文本.167

实例8.13使用CSS选择器选取特定的a节点167

8.5.4通过浏览器获取CSS选择器代码168

实例8.14使用CSS选择器获取京东上传导航条的链接文本168

8.6实战案例:抓取酷狗网络红歌榜170

实例8.15抓取酷狗网络红歌榜爬虫完整实现171

8.7小结.172

第9章pyquery库173

24分钟

9.1pyquery简介173

9.2pyquery基础173

9.2.1安装pyquery173

9.2.2pyquery的基本用法174

实例9.1通过3种方式为PyQuery对象传入HTML文档174

9.3CSS选择器175

实例9.2使用pyquery和CSS选择器分析和提取HTML代码中的信息175

9.4查找节点177

9.4.1查找子节点.177

实例9.3使用find方法和children方法查找子节点177

9.4.2查找父节点.178

实例9.4使用parent方法和parents方法获取父节点.178

9.4.3查找兄弟节点179

实例9.5使用siblings方法查找兄弟节点179

9.4.4获取节点信息180

实例9.6获取节点的各种信息182

9.5修改节点184

9.5.1添加和移除节点的样式(addClass和removeClass).184

实例9.7修改节点的样式185

12Python爬虫从菜鸟到高手

9.5.2修改节点属性和内容(attr、removeAttr、text和html)186

实例9.8attr方法、removeAttr方法、text方法和html方法的用法演示187

9.5.3删除节点(remove).188

实例9.9使用remove方法删除节点189

9.6伪类选择器.190

实例9.10伪类选择器用法展示.190

9.7项目实战:抓取当当图书排行榜191

实例9.11分析当当图书搜索页面194

9.8项目实战:抓取京东商城手机销售排行榜196

实例9.12分析京东商城搜索页面,并将结果保存到Excel文档中.197

9.9小结.201

第四篇数据存储

第10章文件存储.205

38分钟

10.1打开文件205

10.2操作文件的基本方法.206

10.2.1读文件和写文件.207

实例10.1使用不同模式操作文件207

10.2.2读行和写行208

实例10.2按行读写文本文件209

10.3使用FileInput对象读取文件210

实例10.3获取文件内容和相关属性210

10.4处理XML格式的数据211

10.4.1读取与搜索XML文件211

实例10.4获取XML文件的节点和属性信息211

10.4.2字典转换为XML字符串212

实例10.5将字典对象转换为格式化的XML文件213

10.4.3XML字符串转换为字典214

实例10.6将XML文件转换为字典对象214

10.5处理JSON格式的数据.215

10.5.1JSON字符串与字典互相转换216

实例10.7字典与JSON字符串互相转换.216

10.5.2将JSON字符串转换为类实例217

实例10.8将product.json文件转换为Product对象218

10.5.3将类实例转换为JSON字符串219

实例10.9将Product对象转换为JSON文件219

10.5.4类实例列表与JSON字符串互相转换219

目录13

实例10.10将Product对象列表与JSON文件互相转换219

10.6将JSON字符串转换为XML字符串220

实例10.11将products.json文件转换为XML文件220

10.7CSV文件存储.221

10.7.1写入CSV文件.221

实例10.12将数据写入CSV文件.222

10.7.2读取CSV文件.223

实例10.13读取CSV文件中的数据224

10.8小结224

第11章数据库存储225

5分钟

11.1SQLite数据库.225

11.1.1管理SQLite数据库225

11.1.2用Python操作SQLite数据库228

实例11.1读写SQLite数据库中的数据228

11.2项目实战:抓取豆瓣音乐排行榜.230

实例11.2抓取豆瓣音乐Top250排行榜爬虫完整实现.232

11.3项目实战:抓取豆瓣电影排行榜.235

实例11.3抓取豆瓣电影Top250排行榜爬虫的完整实现236

11.4小结239

第五篇爬虫高级应用

第12章抓取异步数据243

11分钟

12.1异步加载与AJAX243

12.2基本原理243

实例12.1使用jQuery发送请求,并获取数据244

12.3逆向工程246

12.4提取结果249

实例12.2使用requests访问异步请求的URL.249

12.5项目实战:支持搜索功能的图片爬虫250

实例12.3图片爬虫完整实现253

12.6项目实战:抓取京东图书评价255

实例12.4抓取京东图书评价爬虫完整实现.256

12.7小结259

第13章可见即可“爬”:Selenium260

16分钟

13.1安装Selenium.260

14Python爬虫从菜鸟到高手

13.2安装WebDriver261

13.2.1安装ChromeDriver.261

13.2.2安装EdgeWebDriver262

13.2.3安装其他浏览器的WebDriver263

13.3Selenium的基本使用方法264

实例13.1使用Selenium控制浏览器.264

13.4查找节点267

13.4.1查找单个节点267

实例13.2使用find_element查找单个节点267

13.4.2查找多个节点269

实例13.3使用find_elements查找多个节点.269

13.5节点交互270

实例13.4模拟单击浏览器中的按钮270

13.6动作链.271

实例13.5模拟鼠标移动动作,自动控制京东商城首页271

实例13.6模拟拖拽动作移动节点273

13.7执行JavaScript代码274

实例13.7动态执行JS代码滚动京东商城首页274

13.8获取节点信息.275

实例13.8使用SeleniumAPI获取京东商城首页HTML中的信息.275

13.9管理Cookies.276

实例13.9用SeleniumAPI读写Cookie.276

13.10改变节点的属性值277

实例13.10改变百度搜索按钮的位置277

实例13.11修改京东商城首页的导航条菜单278

13.11项目实战:抓取QQ空间说说的内容.279

实例13.12抓取QQ空间说说内容爬虫完整代码.279

13.12小结281

...

...

...

前言/序言

大家都知道Python语言现在非常火爆。但Python语言就和英语一样,如果只会Python,就相当于只能用英语进行日常会话,而真正的英语高手是可以充当专业领域(如IT、金融、数学等)翻译的。Python语言也一样,仅仅学习Python语言是不够的,要想找到更好的工作,或想得到更高的薪水,需要学会用Python语言实现某一领域的应用。

现在Python语言应用的领域比较多,人工智能就是其中之一,人工智能不仅涉及Python语言本身的技术,还涉及数学领域的知识,虽然比较火爆,但不是短时间内可以掌握的。然而,在众多的Python语言应用领域中,有一个领域与人工智能的火爆程度相当,但却不像人工智能入门那样难,这就是爬虫。

那么为什么爬虫领域如此火爆呢?其实爬虫的基本功能就是从网上下载各种类型的数据(如HTML、图像文件等)。可不要小瞧这些下载的数据,因为这些数据将成为很多伟大应用的数据源。例如,著名的Google搜索引擎,每天都会有数以亿计的查询请求,而搜索引擎为这些请求返回的数据,都来源于强大的爬虫。编写搜索引擎的第一步就是通过爬虫抓取整个互联网的数据,然后将这些数据保存到本地(以特定的数据格式),接下来就是对这些数据进行分析整理,然后才可以通过搜索引擎进行查询。虽然搜索引擎的实现技术非常多也非常复杂,但爬虫是最重要的,如果没有爬虫搜集数据,再伟大的分析程序也毫无用武之地。

除了搜索引擎,人工智能中的重要分支——深度学习也需要爬虫抓取的数据来训练模型。例如,要想训练一个识别金字塔的深度学习模型,就需要大量与金字塔相关的图片进行训练。最简单的方式就是使用百度或Google搜索金字塔图片,然后用爬虫抓取这些图片到本地。这是利用了搜索引擎已经通过关键字分类的特性,并且重新利用了这些分类的图片。

通过这些例子可以了解到,学习爬虫是进入更高端领域的钥匙,所以Python爬虫将成为第一项需要掌握的热门技术。

尽管爬虫的基本功能是下载文件,但一个复杂的爬虫应用可不仅仅涉及网络技术。将数据下载后,还需要对数据进行分析,提取出需要的信息,以及进行数据可视化,甚至需要一个基于UI的可视化爬虫。所以与爬虫有关的技术还是很多的。

由于Python爬虫涉及的技术很多,学习资料过于分散,因此,笔者觉得很有必要编写一本全面介绍Python爬虫的实战类图书,分享笔者对Python爬虫及相关技术的理解和经验,帮助同行和感兴趣的朋友快速入门Python爬虫,并利用Python语言编写各种复杂的爬虫应用。笔者希望本书能起到抛砖引玉的作用,使读者对Python爬虫及其相关技术产生浓厚的兴趣,并能成功进入Python爬虫领域。

本书使用Python 3编写,并在书中探讨了关于Python爬虫的核心技术。本书分为五篇,共20章,涵盖了Python爬虫的基础知识、常用网络库、常用分析库、数据存储技术、异步数据处理、可见即可爬技术、抓取移动App、Scrapy、用OpenCV识别验证码等内容。本书还提供了大量的实例和项目,以便让读者可以身临其境地体验Python爬虫的魅力。

限于篇幅,本书无法涉及Python爬虫及相关技术的方方面面,只能尽笔者所能,与大家分享尽可能多的知识和经验,相信通过对本书的学习,读者可以拥有进一步深入学习的能力,达到Python爬虫高手的程度也只是时间问题。

最后,笔者希望本书能为Python爬虫及相关技术的普及,为广大从业者提供有价值的实践经验从而帮助他们快速上手贡献绵薄之力。

作者

2023年10月