Python網(wǎng)絡(luò)爬蟲實(shí)例教程(視頻講解版)
本書主要內(nèi)容包括:網(wǎng)絡(luò)爬蟲概述、 requests庫(kù)入門、xapth語法詳解、認(rèn)識(shí)和應(yīng)對(duì)反爬蟲、模擬登錄和驗(yàn)證碼的處理、動(dòng)態(tài)頁面的分析方法、scrapy框架基礎(chǔ)、 應(yīng)對(duì)反爬蟲策略、scrapy數(shù)據(jù)存儲(chǔ)、提交數(shù)據(jù)和保持登錄、crawlspider模板、圖片下載和文件下載、分布式爬蟲、增量式爬蟲、
1. 零基礎(chǔ)入門Python網(wǎng)絡(luò)爬蟲。
2. 提供全套視頻講解爬蟲技術(shù)。
3. 使用爬取鏈家網(wǎng)、豆瓣網(wǎng)、Q房網(wǎng)、拉勾網(wǎng)、新浪微博、我愛我家、房天下、知乎等多個(gè)實(shí)用案例。
齊文光 原中國(guó)網(wǎng)通山東分公司數(shù)據(jù)中心工程師 愛好python編程,善于編寫爬蟲和利用python進(jìn)行數(shù)據(jù)分析和可視化,對(duì)于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)也有深入研究。
第1章 網(wǎng)絡(luò)爬蟲概述 1
1.1 認(rèn)識(shí)網(wǎng)絡(luò)爬蟲 1
1.1.1 網(wǎng)絡(luò)爬蟲的含義 1
1.1.2 網(wǎng)絡(luò)爬蟲的主要類型 2
1.1.3 簡(jiǎn)單網(wǎng)絡(luò)爬蟲的架構(gòu) 3
1.1.4 網(wǎng)絡(luò)爬蟲的應(yīng)用場(chǎng)景 3
1.2 Python網(wǎng)絡(luò)爬蟲技術(shù)概況 4
1.2.1 Python中實(shí)現(xiàn)HTTP請(qǐng)求 4
1.2.2 Python中實(shí)現(xiàn)網(wǎng)頁解析 5
1.2.3 Python爬蟲框架 6
1.3 搭建開發(fā)環(huán)境 7
1.3.1 代碼運(yùn)行環(huán)境 7
1.3.2 開發(fā)編輯器 8
1.4 本章小結(jié)及要求 11
第2章 爬蟲基礎(chǔ) 12
2.1 認(rèn)識(shí)HTTP請(qǐng)求 12
2.1.1 HTTP請(qǐng)求的含義 12
2.1.2 HTTP請(qǐng)求信息 12
2.2 爬蟲基礎(chǔ)Requests庫(kù)入門 15
2.2.1 Requests庫(kù)的安裝 15
2.2.2 Requests庫(kù)的請(qǐng)求方法 16
2.2.3 Requests庫(kù)的響應(yīng)對(duì)象 17
2.2.4 響應(yīng)狀態(tài)碼 17
2.2.5 定制請(qǐng)求頭部 18
2.2.6 重定向與超時(shí) 18
2.2.7 傳遞URL參數(shù) 19
2.3 爬蟲基礎(chǔ)Urllib庫(kù)基礎(chǔ) 20
2.3.1 Urllib 庫(kù)簡(jiǎn)介 20
2.3.2 發(fā)送GET請(qǐng)求 20
2.3.3 模擬瀏覽器發(fā)送GET
請(qǐng)求 21
2.3.4 POST發(fā)送一個(gè)請(qǐng)求 22
2.3.5 URL解析 23
2.4 本章小結(jié)及要求 24
第3章 網(wǎng)頁解析基礎(chǔ) 25
3.1 網(wǎng)頁解析概述 25
3.1.1 常用網(wǎng)頁解析工具 25
3.1.2 HTML源碼簡(jiǎn)介 25
3.2 XPath語法基礎(chǔ) 27
3.2.1 Lxml庫(kù)的安裝 27
3.2.2 XPath語法基礎(chǔ)
通過路徑查找元素 28
3.2.3 通過屬性查找元素 30
3.2.4 提取屬性值 31
3.2.5 XPath的高級(jí)用法 31
3.3 抓取百度首頁實(shí)例 33
3.4 Beautiful Soup庫(kù)和正則表達(dá)式 37
3.4.1 Beautiful Soup簡(jiǎn)介 38
3.4.2 Beautiful Soup基本用法 39
3.4.3 Beautiful Soup標(biāo)準(zhǔn)選擇器 40
3.4.4 正則表達(dá)式 41
3.5 本章小結(jié)及要求 45
第4章 基礎(chǔ)爬蟲實(shí)例 46
4.1 Q房網(wǎng)爬蟲實(shí)例 46
4.1.1 網(wǎng)站頁面分析 46
4.1.2 編寫Q房網(wǎng)二手房房源爬蟲
代碼 47
4.1.3 保存爬取到的信息 50
4.2 多層頁面的爬取 51
4.2.1 爬取詳情頁面分析 51
4.2.2 編寫爬取詳情頁面的代碼 52
4.3 下載房源圖片和實(shí)現(xiàn)多線程
爬蟲 55
4.3.1 下載房源圖片 55
4.3.2 實(shí)現(xiàn)簡(jiǎn)單多線程爬蟲 56
4.4 本章小結(jié)及要求 59
第5章 Requests模擬登錄 60
5.1 使用Cookies登錄網(wǎng)站 60
5.1.1 網(wǎng)站的保持登錄機(jī)制 60
5.1.2 登錄豆瓣網(wǎng)站 61
5.2 模擬登錄網(wǎng)站 63
5.2.1 豆瓣網(wǎng)站的登錄分析 63
5.2.2 Requests會(huì)話對(duì)象 66
5.2.3 編寫Requests登錄豆瓣
網(wǎng)站的代碼 67
5.3 驗(yàn)證碼的處理 68
5.3.1 帶驗(yàn)證碼的網(wǎng)站登錄分析 68
5.3.2 驗(yàn)證碼的識(shí)別和處理 70
5.3.3 編寫帶驗(yàn)證碼的豆瓣網(wǎng)站
登錄代碼 71
5.4 本章小結(jié)及要求 73
第6章 認(rèn)識(shí)和應(yīng)對(duì)反爬蟲 74
6.1 常用的網(wǎng)站反爬蟲策略及應(yīng)對(duì)
措施 74
6.1.1 常用的網(wǎng)站反爬蟲策略 74
6.1.2 應(yīng)對(duì)網(wǎng)站反爬蟲的措施 75
6.2 使用IP代理的方法 76
6.2.1 Requests中使用代理IP 76
6.2.2 獲取免費(fèi)代理IP 77
6.3 使用IP代理爬取微信文章 78
6.3.1 分析微信文章的搜索頁面
及其URL的構(gòu)造特點(diǎn) 78
6.3.2 編寫爬蟲代碼 80
6.4 本章小結(jié)及要求 82
第7章 動(dòng)態(tài)網(wǎng)頁的抓取 84
7.1 動(dòng)態(tài)網(wǎng)頁及其爬取方法 84
7.1.1 動(dòng)態(tài)網(wǎng)頁的含義 84
7.1.2 動(dòng)態(tài)網(wǎng)頁的爬取辦法 85
7.2 動(dòng)態(tài)網(wǎng)頁的爬取技巧 86
7.2.1 鏈家經(jīng)紀(jì)人頁面分析 86
7.2.2 鏈家經(jīng)紀(jì)人爬蟲實(shí)現(xiàn) 88
7.3 Selenium庫(kù)的安裝與使用 90
7.3.1 Selenium庫(kù)的安裝 90
7.3.2 chromedriver的安裝和使用 91
7.3.3 Selenium的簡(jiǎn)單使用 92
7.4 爬取新浪微博網(wǎng)站 95
7.4.1 新浪微博網(wǎng)站爬取分析 95
7.4.2 新浪微博網(wǎng)站爬蟲實(shí)現(xiàn) 95
7.4.3 爬蟲的簡(jiǎn)單去重 98
7.4.4 使用Chrome瀏覽器的
headless模式 100
7.5 本章小結(jié)及要求 101
第8章 動(dòng)態(tài)網(wǎng)頁與應(yīng)對(duì)反爬蟲
綜合實(shí)例 102
8.1 拉勾網(wǎng)網(wǎng)站分析 102
8.1.1 拉勾網(wǎng)網(wǎng)站頁面初步分析 102
8.1.2 解析json數(shù)據(jù)和招聘崗位
詳情頁分析 105
8.2 拉勾網(wǎng)爬蟲實(shí)現(xiàn) 107
8.2.1 拉勾網(wǎng)爬蟲的初步實(shí)現(xiàn) 107
8.2.2 拉勾網(wǎng)爬蟲的進(jìn)一步
完善 109
8.3 探索拉勾網(wǎng)反爬蟲機(jī)制 110
8.4 本章小結(jié)及要求 113
第9章 Scrapy爬蟲框架基礎(chǔ) 114
9.1 Scrapy爬蟲框架簡(jiǎn)介與安裝 114
9.1.1 Scrapy爬蟲框架簡(jiǎn)介 114
9.1.2 Scrapy爬蟲框架的安裝 114
9.2 Scrapy目錄結(jié)構(gòu)和簡(jiǎn)單爬蟲
實(shí)例 116
9.2.1 Scrapy目錄結(jié)構(gòu) 116
9.2.2 百度爬蟲實(shí)現(xiàn) 119
9.2.3 Scrapy選擇器 120
9.3 Scrapy命令行工具、選擇器、
數(shù)據(jù)容器 122
9.3.1 Scrapy常用命令行工具 122
9.3.2 Scrapy選擇器高級(jí)應(yīng)用 124
9.3.3 Scrapy數(shù)據(jù)容器 125
9.4 本章小結(jié)及要求 126
第10章 BasicSpider類和
圖片下載 127
10.1 BasicSpider類 127
10.1.1 Scrapy的爬蟲類和模板 127
10.1.2 BasicSpider類簡(jiǎn)介 128
10.2 爬取我愛我家二手房房源
數(shù)據(jù) 129
10.2.1 我愛我家網(wǎng)站分析 129
10.2.2 我愛我家爬蟲項(xiàng)目實(shí)現(xiàn) 131
10.2.3 數(shù)據(jù)的快捷輸出 133
10.3 圖片下載和翻頁的另一種
方法 134
10.3.1 Scrapy圖片下載簡(jiǎn)介 134
10.3.2 我愛我家房源圖片下載 134
10.3.3 翻頁的另一種方法 135
10.4 本章小結(jié)及要求 137
第11章 CrawlSpider類和Scrapy
框架概覽 138
11.1 CrawlSpider類簡(jiǎn)介 138
11.2 房天下二手房房源爬蟲 139
11.2.1 房天下網(wǎng)站分析 139
11.2.2 房天下二手房房源爬蟲
實(shí)現(xiàn) 140
11.3 Scrapy架構(gòu) 143
11.3.1 Scrapy架構(gòu)概覽 143
11.3.2 Scrapy中的數(shù)據(jù)流 144
11.4 本章小結(jié)及要求 145
第12章 Scrapy應(yīng)對(duì)反爬蟲
策略 146
12.1 常用的反爬蟲設(shè)置 146
12.2 下載器中間件 148
12.2.1 下載器中間件簡(jiǎn)介 148
12.2.2 激活下載器中間件 149
12.2.3 編寫下載器中間件 150
12.3 設(shè)置隨機(jī)用戶代理和IP代理 150
12.3.1 設(shè)置隨機(jī)用戶代理 150
12.3.2 設(shè)置隨機(jī)IP代理 152
12.4 本章小結(jié)及要求 153
第13章 登錄網(wǎng)站和提交數(shù)據(jù) 154
13.1 Cookies登錄網(wǎng)站的高級(jí)技巧 154
13.1.1 Request對(duì)象 154
13.1.2 利用Cookies登錄網(wǎng)站的
技巧 155
13.2 使用FormRequest向網(wǎng)站提交
數(shù)據(jù) 157
13.2.1 FormRequest類 157
13.2.2 爬取Q房網(wǎng)二手房房源 158
13.3 Scrapy登錄網(wǎng)站的高級(jí)技巧 159
13.3.1 FormRequest.from_response()
方法 159
13.3.2 利用Scrapy登錄網(wǎng)站的
技巧 160
13.4 本章小結(jié)及要求 161
第14章 存儲(chǔ)數(shù)據(jù)到數(shù)據(jù)庫(kù) 162
14.1 MongoDB的安裝與使用 162
14.1.1 Scrapy存儲(chǔ)數(shù)據(jù)與
MongoDB簡(jiǎn)介 162
14.1.2 MongoDB的安裝 162
14.1.3 MongoDB的配置與啟動(dòng) 163
14.1.4 MongoDB的可視化管理 164
14.2 爬取鏈家經(jīng)紀(jì)人成交數(shù)據(jù) 165
14.2.1 鏈家移動(dòng)頁面分析 165
14.2.2 定義Items、編寫spider 168
14.3 設(shè)置鏈家網(wǎng)爬蟲pipeline 171
14.3.1 在Python中操作
MongoDB 171
14.3.2 配置pipeline 174
14.3.3 在settings中啟用pipeline 175
14.4 存儲(chǔ)數(shù)據(jù)到MySQL 175
14.4.1 使用pymysql操作MySQL
數(shù)據(jù)庫(kù) 175
14.4.2 把鏈家經(jīng)紀(jì)人成交數(shù)據(jù)存儲(chǔ)
到MySQL數(shù)據(jù)庫(kù) 176
14.5 本章小結(jié)及要求 177
第15章 分布式爬蟲與爬蟲部署 178
15.1 分布式爬蟲原理與Redis的
安裝 178
15.1.1 Scrapy分布式爬蟲原理 178
15.1.2 Redis的安裝 179
15.2 scrapy_redis實(shí)現(xiàn)分布式爬蟲 181
15.2.1 scrapy_redis庫(kù) 181
15.2.2 分布式爬蟲的部署和存儲(chǔ) 182
15.3 使用Scrapyd部署爬蟲 183
15.3.1 Scrapyd簡(jiǎn)介和安裝 183
15.3.2 使用scrapyd-client部署
爬蟲 185
15.4 Scrapy爬蟲去重 187
15.4.1 Scrapy去重方案 187
15.4.2 Bloom Filter過濾 188
15.5 本章小結(jié)及要求 189
第16章 項(xiàng)目實(shí)戰(zhàn)知乎用戶
爬蟲及數(shù)據(jù)分析 190
16.1 知乎用戶爬蟲知乎網(wǎng)站
分析 190
16.1.1 知乎網(wǎng)站初步分析 190
16.1.2 知乎網(wǎng)站進(jìn)一步分析 192
16.2 知乎爬蟲的實(shí)現(xiàn) 194
16.2.1 編寫知乎爬蟲代碼 194
16.2.2 使用MongoDB和scrapy_redis
搭建分布式爬蟲 196
16.3 爬蟲數(shù)據(jù)分析 197
16.3.1 爬蟲數(shù)據(jù)分析工具 197
16.3.2 知乎用戶數(shù)據(jù)加載 199
16.3.3 爬蟲數(shù)據(jù)簡(jiǎn)單分析 200
16.4 本章小結(jié)及要求 206