前言
基礎篇
第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
↑摺 疊
· · · · · · (
收起)