第1章 理解網絡爬蟲 1
1.1 爬蟲的定義 1
1.2 爬蟲的類型 2
1.3 爬蟲的原理 2
1.4 爬蟲的搜索策略 4
1.5 爬蟲的閤法性與開發流程 5
1.6 本章小結 6
第2章 爬蟲開發基礎 7
2.1 HTTP與HTTPS 7
2.2 請求頭 9
2.3 Cookies 10
2.4 HTML 11
2.5 JavaScript 12
2.6 JSON 14
2.7 Ajax 14
2.8 本章小結 15
第3章 Chrome分析網站 16
3.1 Chrome開發工具 16
3.2 Elements標簽 17
3.3 Network標簽 18
3.4 分析QQ音樂 20
3.5 本章小結 23
第4章 Fiddler抓包 24
4.1 Fiddler介紹 24
4.2 Fiddler安裝配置 24
4.3 Fiddler抓取手機應用 26
4.4 Toolbar工具欄 29
4.5 Web Session列錶 30
4.6 View選項視圖 32
4.7 Quickexec命令行 33
4.8 本章小結 34
第5章 爬蟲庫Urllib 35
5.1 Urllib簡介 35
5.2 發送請求 36
5.3 復雜的請求 37
5.4 代理IP 38
5.5 使用Cookies 39
5.6 證書驗證 40
5.7 數據處理 41
5.8 本章小結 42
第6章 爬蟲庫Requests 43
6.1 Requests簡介及安裝 43
6.2 請求方式 44
6.3 復雜的請求方式 45
6.4 下載與上傳 47
6.5 本章小結 49
第7章 Requests-Cache爬蟲緩存 50
7.1 簡介及安裝 50
7.2 在Requests中使用緩存 50
7.3 緩存的存儲機製 53
7.4 本章小結 54
第8章 爬蟲庫Requests-HTML 55
8.1 簡介及安裝 55
8.2 請求方式 56
8.3 數據清洗 56
8.4 Ajax動態數據抓取 59
8.5 本章小結 61
第9章 網頁操控與數據爬取 62
9.1 瞭解Selenium 62
9.2 安裝Selenium 63
9.3 網頁元素定位 66
9.4 網頁元素操控 70
9.5 常用功能 73
9.6 實戰:百度自動答題 80
9.7 本章小結 85
第10章 手機App數據爬取 86
10.1 Appium簡介及原理 86
10.2 搭建開發環境 87
10.3 連接Android係統 92
10.4 App的元素定位 97
10.5 App的元素操控 99
10.6 實戰:淘寶商品采集 102
10.7 本章小結 107
第11章 Splash、Mitmproxy與Aiohttp 109
11.1 Splash動態數據抓取 109
11.1.1 簡介及安裝 109
11.1.2 使用Splash的API接口 112
11.2 Mitmproxy抓包 116
11.2.1 簡介及安裝 116
11.2.2 用Mitmdump抓取愛奇藝視頻 116
11.3 Aiohttp高並發抓取 119
11.3.1 簡介及使用 119
11.3.2 Aiohttp異步爬取小說排行榜 123
11.4 本章小結 126
第12章 驗證碼識彆 128
12.1 驗證碼的類型 128
12.2 OCR技術 129
12.3 第三方平颱 131
12.4 本章小結 134
第13章 數據清洗 136
13.1 字符串操作 136
13.1.1 截取 136
13.1.2 替換 137
13.1.3 查找 137
13.1.4 分割 138
13.2 正則錶達式 139
13.2.1 正則語法 140
13.2.2 正則處理函數 141
13.3 BeautifulSoup數據清洗 144
13.3.1 BeautifulSoup介紹與安裝 144
13.3.2 BeautifulSoup的使用示例 146
13.4 本章小結 149
第14章 文檔數據存儲 150
14.1 CSV數據的寫入和讀取 150
14.2 Excel數據的寫入和讀取 151
14.3 Word數據的寫入和讀取 154
14.4 本章小結 156
第15章 ORM框架 158
15.1 SQLAlchemy介紹與安裝 158
15.1.1 操作數據庫的方法 158
15.1.2 SQLAlchemy框架介紹 158
15.1.3 SQLAlchemy的安裝 159
15.2 連接數據庫 160
15.3 創建數據錶 162
15.4 添加數據 164
15.5 更新數據 165
15.6 查詢數據 166
15.7 本章小結 168
第16章 MongoDB數據庫操作 169
16.1 MongoDB介紹 169
16.2 MogoDB的安裝及使用 170
16.2.1 MongoDB的安裝與配置 170
16.2.2 MongoDB可視化工具 172
16.2.3 PyMongo的安裝 173
16.3 連接MongoDB數據庫 173
16.4 添加文檔 174
16.5 更新文檔 175
16.6 查詢文檔 176
16.7 本章小結 178
第17章 實戰:爬取51Job招聘信息 180
17.1 項目分析 180
17.2 獲取城市編號 180
17.3 獲取招聘職位總頁數 182
17.4 爬取每個職位信息 184
17.5 數據存儲 188
17.6 爬蟲配置文件 190
17.7 本章小結 191
第18章 實戰:分布式爬蟲——QQ音樂 193
18.1 項目分析 193
18.2 歌麯下載 194
18.3 歌手的歌麯信息 198
18.4 分類歌手列錶 201
18.5 全站歌手列錶 203
18.6 數據存儲 204
18.7 分布式爬蟲 205
18.7.1 分布式概念 205
18.7.2 並發庫concurrent.futures 206
18.7.3 分布式策略 207
18.8 本章小結 209
第19章 實戰:12306搶票爬蟲 211
19.1 項目分析 211
19.2 驗證碼驗證 211
19.3 用戶登錄與驗證 214
19.4 查詢車次 219
19.5 預訂車票 225
19.6 提交訂單 227
19.7 生成訂單 233
19.8 本章小結 236
第20章 實戰:玩轉微博 244
20.1 項目分析 244
20.2 用戶登錄 244
20.3 用戶登錄(帶驗證碼) 253
20.4 關鍵詞搜索熱門微博 259
20.5 發布微博 264
20.6 關注用戶 268
20.7 點贊和轉發評論 271
20.8 本章小結 277
第21章 實戰:微博爬蟲軟件開發 278
21.1 GUI庫及PyQt5的安裝與配置 278
21.1.1 GUI庫 278
21.1.2 PyQt5安裝及環境搭建 279
21.2 項目分析 281
21.3 軟件主界麵 284
21.4 相關服務界麵 288
21.5 微博采集界麵 292
21.6 微博發布界麵 297
21.7 微博爬蟲功能 308
21.8 本章小結 315
第22章 Scrapy爬蟲開發 317
22.1 認識與安裝Scrapy 317
22.1.1 常見爬蟲框架介紹 317
22.1.2 Scrapy的運行機製 318
22.1.3 安裝Scrapy 319
22.2 Scrapy爬蟲開發示例 320
22.3 Spider的編寫 326
22.4 Items的編寫 329
22.5 Item Pipeline的編寫 330
22.5.1 用MongoDB實現數據入庫 330
22.5.2 用SQLAlchemy實現數據入庫 332
22.6 Selectors的編寫 333
22.7 文件下載 336
22.8 本章小結 339
第23章 Scrapy擴展開發 341
23.1 剖析Scrapy中間件 341
23.1.1 SpiderMiddleware中間件 342
23.1.2 DownloaderMiddleware中間件 344
23.2 自定義中間件 347
23.2.1 設置代理IP服務 347
23.2.2 動態設置請求頭 350
23.2.3 設置隨機Cookies 353
23.3 實戰:Scrapy Selenium爬取豆瓣電影評論 355
23.3.1 網站分析 355
23.3.2 項目設計與實現 357
23.3.3 定義Selenium中間件 359
23.3.4 開發Spider程序 360
23.4 實戰:Scrapy Splash爬取B站動漫信息 362
23.4.1 Scrapy_Splash實現原理 363
23.4.2 網站分析 363
23.4.3 項目設計與實現 365
23.4.4 開發Spider程序 367
23.5 實戰:Scrapy Redis分布式爬取貓眼排行榜 369
23.5.1 Scrapy_Redis實現原理 369
23.5.2 安裝Redis數據庫 371
23.5.3 網站分析 372
23.5.4 項目設計與實現 373
23.5.5 開發Spider程序 375
23.6 分布式爬蟲與增量式爬蟲 377
23.6.1 基於管道實現增量式 378
23.6.2 基於中間件實現增量式 381
23.7 本章小結 384
第24章 實戰:爬取鏈傢樓盤信息 386
24.1 項目分析 386
24.2 創建項目 389
24.3 項目配置 389
24.4 定義存儲字段 391
24.5 定義管道類 392
24.6 編寫爬蟲規則 396
24.7 本章小結 400
第25章 實戰:QQ音樂全站爬取 402
25.1 項目分析 402
25.2 項目創建與配置 403
25.2.1 項目創建 403
25.2.2 項目配置 403
25.3 定義存儲字段和管道類 405
25.3.1 定義存儲字段 405
25.3.2 定義管道類 405
25.4 編寫爬蟲規則 408
25.5 本章小結 413
第26章 爬蟲的上綫部署 415
26.1 非框架式爬蟲部署 415
26.1.1 創建可執行程序 415
26.1.2 製定任務計劃程序 417
26.1.3 創建服務程序 421
26.2 框架式爬蟲部署 424
26.2.1 Scrapyd部署爬蟲服務 424
26.2.2 Gerapy爬蟲管理框架 429
26.3 本章小結 434
第27章 反爬蟲的解決方案 435
27.1 常見的反爬蟲技術 435
27.2 基於驗證碼的反爬蟲 436
27.2.1 驗證碼齣現的情況 437
27.2.2 解決方案 438
27.3 基於請求參數的反爬蟲 439
27.3.1 請求參數的數據來源 439
27.3.2 請求參數的查找 440
27.4 基於請求頭的反爬蟲 441
27.5 基於Cookies的反爬蟲 443
27.6 本章小結 447
第28章 自己動手開發爬蟲框架 449
28.1 框架設計說明 449
28.2 異步爬取方式 450
28.3 數據清洗機製 455
28.4 數據存儲機製 457
28.5 實戰:用自製框架爬取豆瓣電影 463
28.6 本章小結 468
· · · · · · (
收起)