隨著大資料時代到來,網路資訊量也變得更多更大,基于傳統搜索引擎的局限性,網路爬蟲應運而生,本書從基本的爬蟲原理開始講解,通過介紹Pthyon編程語言和Web前端基礎知識引領讀者入門,之后介紹動態爬蟲原理以及Scrapy爬蟲框架,最后介紹大規模資料下分布式爬蟲的設計以及PySpider爬蟲框架等,
主要特點:
由淺入深,從Python和Web前端基礎開始講起,逐步加深難度,層層遞進,
內容詳實,從靜態網站到動態網站,從單機爬蟲到分布式爬蟲,既包含基礎知識點,又講解了關鍵問題和難點分析,方便讀者完成進階,
實用性強,本書共有9個爬蟲專案,以系統的實戰專案為驅動,由淺及深地講解爬蟲開發中所需的知識和技能,
難點詳析,對js加密的分析、反爬蟲措施的突破、去重方案的設計、分布式爬蟲的開發進行了細致的講解,
全網最全Python必讀書藉合集(PDF檔案免費下載)
目錄 · · · · · ·
前言
基礎篇
第1章 回顧Python編程 2
1.1 安裝Python 2
1.1.1 Windows上安裝Python 2
1.1.2 Ubuntu上的Python 3
1.2 搭建開發環境 4
1.2.1 Eclipse+PyDev 4
1.2.2 PyCharm 10
1.3 IO編程 11
1.3.1 檔案讀寫 11
1.3.2 操作檔案和目錄 14
1.3.3 序列化操作 15
1.4 行程和執行緒 16
1.4.1 多行程 16
1.4.2 多執行緒 22
1.4.3 協程 25
1.4.4 分布式行程 27
1.5 網路編程 32
1.5.1 TCP編程 33
1.5.2 UDP編程 35
1.6 小結 36
第2章 Web前端基礎 37
2.1 W3C標準 37
2.1.1 HTML 37
2.1.2 CSS 47
2.1.3 JavaScript 51
2.1.4 XPath 56
2.1.5 JSON 61
2.2 HTTP標準 61
2.2.1 HTTP請求程序 62
2.2.2 HTTP狀態碼含義 62
2.2.3 HTTP頭部資訊 63
2.2.4 Cookie狀態管理 66
2.2.5 HTTP請求方式 66
2.3 小結 68
第3章 初識網路爬蟲 69
3.1 網路爬蟲概述 69
3.1.1 網路爬蟲及其應用 69
3.1.2 網路爬蟲結構 71
3.2 HTTP請求的Python實作 72
3.2.1 urllib2/urllib實作 72
3.2.2 httplib/urllib實作 76
3.2.3 更人性化的Requests 77
3.3 小結 82
第4章 HTML決議大法 83
4.1 初識Firebug 83
4.1.1 安裝Firebug 84
4.1.2 強大的功能 84
4.2 正則運算式 95
4.2.1 基本語法與使用 96
4.2.2 Python與正則 102
4.3 強大的BeautifulSoup 108
4.3.1 安裝BeautifulSoup 108
4.3.2 BeautifulSoup的使用 109
4.3.3 lxml的XPath決議 124
4.4 小結 126
第5章 資料存盤(無資料庫版) 127
5.1 HTML正文抽取 127
5.1.1 存盤為JSON 127
5.1.2 存盤為CSV 132
5.2 多媒體檔案抽取 136
5.3 Email提醒 137
5.4 小結 138
第6章 實戰專案:基礎爬蟲 139
6.1 基礎爬蟲架構及運行流程 140
6.2 URL管理器 141
6.3 HTML下載器 142
6.4 HTML決議器 143
6.5 資料存盤器 145
6.6 爬蟲調度器 146
6.7 小結 147
第7章 實戰專案:簡單分布式爬蟲 148
7.1 簡單分布式爬蟲結構 148
7.2 控制節點 149
7.2.1 URL管理器 149
7.2.2 資料存盤器 151
7.2.3 控制調度器 153
7.3 爬蟲節點 155
7.3.1 HTML下載器 155
7.3.2 HTML決議器 156
7.3.3 爬蟲調度器 157
7.4 小結 159
中級篇
第8章 資料存盤(資料庫版) 162
8.1 SQLite 162
8.1.1 安裝SQLite 162
8.1.2 SQL語法 163
8.1.3 SQLite增刪改查 168
8.1.4 SQLite事務 170
8.1.5 Python操作SQLite 171
8.2 MySQL 174
8.2.1 安裝MySQL 174
8.2.2 MySQL基礎 177
8.2.3 Python操作MySQL 181
8.3 更適合爬蟲的MongoDB 183
8.3.1 安裝MongoDB 184
8.3.2 MongoDB基礎 187
8.3.3 Python操作MongoDB 194
8.4 小結 196
第9章 動態網站抓取 197
9.1 Ajax和動態HTML 197
9.2 動態爬蟲1:爬取影評資訊 198
9.3 PhantomJS 207
9.3.1 安裝PhantomJS 207
9.3.2 快速入門 208
9.3.3 螢屏捕獲 211
9.3.4 網路監控 213
9.3.5 頁面自動化 214
9.3.6 常用模塊和方法 215
9.4 Selenium 218
9.4.1 安裝Selenium 219
9.4.2 快速入門 220
9.4.3 元素選取 221
9.4.4 頁面操作 222
9.4.5 等待 225
9.5 動態爬蟲2:爬取去哪網 227
9.6 小結 230
第10章 Web端協議分析 231
10.1 網頁登錄POST分析 231
10.1.1 隱藏表單分析 231
10.1.2 加密資料分析 234
10.2 驗證碼問題 246
10.2.1 IP代理 246
10.2.2 Cookie登錄 249
10.2.3 傳統驗證碼識別 250
10.2.4 人工打碼 251
10.2.5 滑動驗證碼 252
10.3 www]m]wap 252
10.4 小結 254
第11章 終端協議分析 255
11.1 PC客戶端抓包分析 255
11.1.1 HTTP Analyzer簡介 255
11.1.2 蝦米音樂PC端API實戰分析 257
11.2 App抓包分析 259
11.2.1 Wireshark簡介 259
11.2.2 酷我聽書App端API實戰分析 266
11.3 API爬蟲:爬取mp3資源資訊 268
11.4 小結 272
第12章 初窺Scrapy爬蟲框架 273
12.1 Scrapy爬蟲架構 273
12.2 安裝Scrapy 275
12.3 創建cnblogs專案 276
12.4 創建爬蟲模塊 277
12.5 選擇器 278
12.5.1 Selector的用法 278
12.5.2 HTML決議實作 280
12.6 命令列工具 282
12.7 定義Item 284
12.8 翻頁功能 286
12.9 構建Item Pipeline 287
12.9.1 定制Item Pipeline 287
12.9.2 激活Item Pipeline 288
12.10 內置資料存盤 288
12.11 內置圖片和檔案下載方式 289
12.12 啟動爬蟲 294
12.13 強化爬蟲 297
12.13.1 除錯方法 297
12.13.2 例外 299
12.13.3 控制運行狀態 300
12.14 小結 301
第13章 深入Scrapy爬蟲框架 302
13.1 再看Spider 302
13.2 Item Loader 308
13.2.1 Item與Item Loader 308
13.2.2 輸入與輸出處理器 309
13.2.3 Item Loader Context 310
13.2.4 重用和擴展Item Loader 311
13.2.5 內置的處理器 312
13.3 再看Item Pipeline 314
13.4 請求與回應 315
13.4.1 Request物件 315
13.4.2 Response物件 318
13.5 下載器中間件 320
13.5.1 激活下載器中間件 320
13.5.2 撰寫下載器中間件 321
13.6 Spider中間件 324
13.6.1 激活Spider中間件 324
13.6.2 撰寫Spider中間件 325
13.7 擴展 327
13.7.1 配置擴展 327
13.7.2 定制擴展 328
13.7.3 內置擴展 332
13.8 突破反爬蟲 332
13.8.1 UserAgent池 333
13.8.2 禁用Cookies 333
13.8.3 設定下載延時與自動限速 333
13.8.4 代理IP池 334
13.8.5 Tor代理 334
13.8.6 分布式下載器:Crawlera 337
13.8.7 Google cache 338
13.9 小結 339
第14章 實戰專案:Scrapy爬蟲 340
14.1 創建知乎爬蟲 340
14.2 定義Item 342
14.3 創建爬蟲模塊 343
14.3.1 登錄知乎 343
14.3.2 決議功能 345
14.4 Pipeline 351
14.5 優化措施 352
14.6 部署爬蟲 353
14.6.1 Scrapyd 354
14.6.2 Scrapyd-client 356
14.7 小結 357
深入篇
第15章 增量式爬蟲 360
15.1 去重方案 360
15.2 BloomFilter演算法 361
15.2.1 BloomFilter原理 361
15.2.2 Python實作BloomFilter 363
15.3 Scrapy和BloomFilter 364
15.4 小結 366
第16章 分布式爬蟲與Scrapy 367
16.1 Redis基礎 367
16.1.1 Redis簡介 367
16.1.2 Redis的安裝和配置 368
16.1.3 Redis資料型別與操作 372
16.2 Python和Redis 375
16.2.1 Python操作Redis 375
16.2.2 Scrapy集成Redis 384
16.3 MongoDB集群 385
16.4 小結 390
第17章 實戰專案:Scrapy分布式爬蟲 391
17.1 創建云起書院爬蟲 391
17.2 定義Item 393
17.3 撰寫爬蟲模塊 394
17.4 Pipeline 395
17.5 應對反爬蟲機制 397
17.6 去重優化 400
17.7 小結 401
第18章 人性化PySpider爬蟲框架 403
18.1 PySpider與Scrapy 403
18.2 安裝PySpider 404
18.3 創建豆瓣爬蟲 405
18.4 選擇器 409
18.4.1 PyQuery的用法 409
18.4.2 決議資料 411
18.5 Ajax和HTTP請求 415
18.5.1 Ajax爬取 415
18.5.2 HTTP請求實作 417
18.6 PySpider和PhantomJS 417
18.6.1 使用PhantomJS 418
18.6.2 運行JavaScript 420
18.7 資料存盤 420
18.8 PySpider爬蟲架構 422
18.9 小結 423
↑折 疊
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/168220.html
標籤:其他
