“私房菜谱”
Python爬虫基础知识
Python网络库
Python解析库
Python数据存储
Python异步数据抓取
Python Splash爬虫
Python移动App数据抓取
Python多线程爬虫
Python可见即可“爬”
Python Scrapy实战
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根据规则选取<a>节点129
7.2.5选取父节点.129
实例7.6使用XPath选取<a>节点和父节点,并输出class属性值130
7.2.6属性匹配与获取130
实例7.7根据href属性过滤<a>节点.130
7.2.7多属性匹配.131
实例7.8使用and和or选取<a>节点.131
7.2.8按序选择节点132
实例7.9使用XPath和索引获取特定<a>节点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
...
...
...
温馨提示:请使用荆门市图书馆的读者帐号和密码进行登录