第 1章 緒論 1
1.1 爬蟲 2
1.2 爬蟲可以做什麼 2
1.2.1 收集數據 2
1.2.2 盡職調查 3
1.2.3 刷流量和秒殺 3
1.3 爬蟲開發技術 4
第 2章 Python基礎 5
2.1 Python的安裝和運行 6
2.1.1 在Windows中安裝Python 6
2.1.2 在Mac OS中安裝Python 7
2.1.3 在Linux中安裝Python 8
2.2 Python開發環境 8
2.2.1 PyCharm介紹與安裝 8
2.2.2 運行代碼 9
2.3 Python的數據結構和控製結構 12
2.3.1 整數、浮點數和變量 12
2.3.2 字符串、列錶、元組 13
2.3.3 數據的讀取 14
2.3.4 字典與集閤 16
2.3.5 條件語句 17
2.3.6 for循環與while循環 19
2.4 函數與類 21
2.4.1 函數 21
2.4.2 類與麵嚮對象編程 28
2.5 階段案例——猜數遊戲 32
2.5.1 需求分析 32
2.5.2 核心代碼構建 33
2.5.3 調試與運行 33
2.6 本章小結 34
2.7 動手實踐 34
第3章 正則錶達式與文件操作 35
3.1 正則錶達式 36
3.1.1 正則錶達式的基本符號 36
3.1.2 在Python中使用正則錶達式 38
3.1.3 正則錶達式提取技巧 41
3.2 Python文件操作 44
3.2.1 使用Python讀/寫文本文件 44
3.2.2 使用Python讀/寫CSV文件 46
3.3 階段案例——半自動爬蟲開發 49
3.3.1 需求分析 49
3.3.2 核心代碼構建 50
3.3.3 調試與運行 51
3.4 本章小結 54
3.5 動手實踐 54
第4章 簡單的網頁爬蟲開發 55
4.1 使用Python獲取網頁源代碼 56
4.1.1 Python的第三方庫 56
4.1.2 requests介紹與安裝 56
4.1.3 使用requests獲取網頁源代碼 57
4.1.4 結閤requests與正則錶達式 59
4.2 多綫程爬蟲 60
4.2.1 多進程庫(multiprocessing) 60
4.2.2 開發多綫程爬蟲 61
4.3 爬蟲的常見搜索算法 62
4.3.1 深度優先搜索 62
4.3.2 廣度優先搜索 63
4.3.3 爬蟲搜索算法的選擇 64
4.4 階段案例——小說網站爬蟲開發 64
4.4.1 需求分析 64
4.4.2 核心代碼構建 65
4.4.3 調試與運行 68
4.5 本章小結 68
4.6 動手實踐 68
第5章 高性能HTML內容解析 69
5.1 HTML基礎 70
5.2 XPath 71
5.2.1 XPath的介紹 71
5.2.2 lxml的安裝 71
5.2.3 XPath語法講解 73
5.2.4 使用Google Chrome瀏覽器輔助構造XPath 77
5.3 Beautiful Soup4 81
5.3.1 BS4的安裝 81
5.3.2 BS4語法講解 82
5.4 階段案例——大麥網演齣爬蟲 85
5.4.1 需求分析 85
5.4.2 核心代碼構建 85
5.4.3 調試與運行 86
5.5 本章小結 87
5.6 動手實踐 87
第6章 Python與數據庫 88
6.1 MongoDB 89
6.1.1 MongoDB的安裝 89
6.1.2 PyMongo的安裝與使用 94
6.1.3 使用RoboMongo執行MongoDB命令 101
6.2 Redis 102
6.2.1 環境搭建 102
6.2.2 Redis交互環境的使用 103
6.2.3 Redis-py 104
6.3 MongoDB的優化建議 105
6.3.1 少讀少寫少更新 105
6.3.2 能用Redis不用MongoDB 106
6.4 階段案例 107
6.4.1 需求分析 107
6.4.2 核心代碼構建 107
6.4.3 調試與運行 108
6.5 本章小結 108
6.6 動手實踐 108
第7章 異步加載與請求頭 109
7.1 異步加載 110
7.1.1 AJAX技術介紹 110
7.1.2 JSON介紹與應用 110
7.1.3 異步GET與POST請求 111
7.1.4 特殊的異步加載 113
7.1.5 多次請求的異步加載 114
7.1.6 基於異步加載的簡單登錄 117
7.2 請求頭(Headers) 118
7.2.1 請求頭的作用 118
7.2.2 僞造請求頭 119
7.3 模擬瀏覽器 122
7.3.1 Selenium介紹 123
7.3.2 Selenium安裝 124
7.3.3 Selenium的使用 124
7.4 階段案例 128
7.4.1 需求分析 128
7.4.2 核心代碼構建 128
7.4.3 調試與運行 130
7.5 本章小結 131
7.6 動手實踐 131
第8章 模擬登錄與驗證碼 132
8.1 模擬登錄 133
8.1.1 使用Selenium模擬登錄 133
8.1.2 使用Cookies登錄 135
8.1.3 模擬錶單登錄 137
8.2 驗證碼 139
8.2.1 肉眼打碼 139
8.2.2 自動打碼 141
8.3 階段案例——自動登錄果殼網 144
8.3.1 需求分析 144
8.3.2 核心代碼構建 145
8.3.3 運行與調試 146
8.4 本章小結 147
8.5 動手實踐 147
第9章 抓包與中間人爬蟲 148
9.1 數據抓包 149
9.1.1 Charles的介紹和使用 149
9.1.2 App爬蟲和小程序爬蟲 156
9.2 中間人爬蟲 163
9.2.1 mitmproxy的介紹和安裝 163
9.2.2 mitmproxy的使用 164
9.2.3 使用Python定製mitmproxy 165
9.3 階段案例——Keep熱門 170
9.3.1 需求分析 170
9.3.2 核心代碼構建 170
9.3.3 調試運行 172
9.4 本章小結 172
9.5 動手實踐 172
第 10章 Android原生App爬蟲 173
10.1 實現原理 174
10.1.1 環境搭建 175
10.1.2 使用Python操縱手機 178
10.1.3 選擇器 180
10.1.4 操作 181
10.2 綜閤應用 188
10.2.1 單設備應用 188
10.2.2 多設備應用(群控) 191
10.3 階段案例——BOSS直聘爬蟲 196
10.3.1 需求分析 196
10.3.2 核心代碼構建 196
10.3.3 調試與運行 197
10.4 本章小結 197
10.5 動手實踐 198
第 11章 Scrapy 199
11.1 Scrapy的安裝 200
11.1.1 在Windows下安裝Scrapy 200
11.1.2 在Linux下安裝Scrapy 202
11.1.3 在Mac OS下安裝Scrapy 202
11.2 Scrapy的使用 203
11.2.1 創建項目 203
11.2.2 在Scrapy中使用XPath 207
11.3 Scrapy與MongoDB 213
11.3.1 items和pipelines的設置 213
11.3.2 在Scrapy中使用MongoDB 215
11.4 Scrapy與Redis 218
11.4.1 Scrapy_redis的安裝和使用 218
11.4.2 使用Redis緩存網頁並自動去重 218
11.5 階段案例——博客爬蟲 220
11.5.1 需求分析 220
11.5.2 核心代碼構建 221
11.5.3 調試與運行 226
11.6 本章小結 228
11.7 動手實踐 228
第 12章 Scrapy應用 229
12.1 中間件(Middleware) 230
12.1.1 下載器中間件 230
12.1.2 爬蟲中間件 242
12.2 爬蟲的部署 246
12.2.1 Scrapyd介紹與使用 246
12.2.2 權限管理 253
12.3 分布式架構 258
12.3.1 分布式架構介紹 258
12.3.2 如何選擇Master 259
12.4 階段案例 259
12.5 本章小結 259
第 13章 爬蟲開發中的法律和道德問題 260
13.1 法律問題 261
13.1.1 數據采集的法律問題 261
13.1.2 數據的使用 261
13.1.3 注冊及登錄可能導緻的法律問題 261
13.1.4 數據存儲 261
13.1.5 內幕交易 261
13.2 道德協議 262
13.2.1 robots.txt協議 262
13.2.2 爬取頻率 262
13.2.3 不要開源爬蟲的源代碼 262
13.3 本章小結 262
· · · · · · (
收起)