Python爬蟲開發(fā) 從入門到實(shí)戰(zhàn)(微課版)
定 價(jià):49.8 元
叢書名:互聯(lián)網(wǎng)+職業(yè)技能系列O2O學(xué)習(xí)新模式
- 作者:謝乾坤
- 出版時(shí)間:2018/9/1
- ISBN:9787115490995
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書較為全面地介紹了定向爬蟲的開發(fā)過程、各種反爬蟲機(jī)制的破解方法和爬蟲開發(fā)的相關(guān)技巧。全書共13章,包括緒論、Python基礎(chǔ)、正則表達(dá)式與文件操作、簡單的網(wǎng)頁爬蟲開發(fā)、高性能HTML內(nèi)容解析、Python與數(shù)據(jù)庫、異步加載與請求頭、模擬登錄與驗(yàn)證碼、抓包與中間人爬蟲、Android原生App爬蟲、Scrapy、Scrapy應(yīng)用、爬蟲開發(fā)中的法律和道德問題等。除第 1、12、13章外的其他章末尾都有動手實(shí)踐,以幫助讀者鞏固本章和前面章節(jié)所學(xué)的內(nèi)容。針對書中的疑難內(nèi)容,還配有視頻講解,以便更好地演示相關(guān)操作。
1.基于Python 3.X講解,從入門到實(shí)戰(zhàn),全面講解Python爬蟲技術(shù)。
2.全書重點(diǎn)難點(diǎn)附帶微課講解,書網(wǎng)融合互動學(xué)習(xí)。
3.案例豐富,重視實(shí)踐,著重培養(yǎng)讀者的實(shí)際運(yùn)用能力。
謝乾坤,網(wǎng)易數(shù)據(jù)挖掘工程師。前極客學(xué)院爬蟲課程講師,以網(wǎng)名 『青南』與『kingname』開設(shè)爬蟲開發(fā)課程,受眾超過10萬。多年爬蟲開發(fā)經(jīng)驗(yàn),對爬蟲開發(fā)有獨(dú)到的理解。曾在多家知名公司從事爬蟲開發(fā)工作,并為國內(nèi)外眾多基金公司與投資公司提供數(shù)據(jù)支持。
第 1章 緒論 1
1.1 爬蟲 2
1.2 爬蟲可以做什么 2
1.2.1 收集數(shù)據(jù) 2
1.2.2 盡職調(diào)查 3
1.2.3 刷流量和秒殺 3
1.3 爬蟲開發(fā)技術(shù) 4
第 2章 Python基礎(chǔ) 5
2.1 Python的安裝和運(yùn)行 6
2.1.1 在Windows中安裝Python 6
2.1.2 在Mac OS中安裝Python 7
2.1.3 在Linux中安裝Python 8
2.2 Python開發(fā)環(huán)境 8
2.2.1 PyCharm介紹與安裝 8
2.2.2 運(yùn)行代碼 9
2.3 Python的數(shù)據(jù)結(jié)構(gòu)和控制結(jié)構(gòu) 12
2.3.1 整數(shù)、浮點(diǎn)數(shù)和變量 12
2.3.2 字符串、列表、元組 13
2.3.3 數(shù)據(jù)的讀取 14
2.3.4 字典與集合 16
2.3.5 條件語句 17
2.3.6 for循環(huán)與while循環(huán) 19
2.4 函數(shù)與類 21
2.4.1 函數(shù) 21
2.4.2 類與面向?qū)ο缶幊獭?8
2.5 階段案例——猜數(shù)游戲 32
2.5.1 需求分析 32
2.5.2 核心代碼構(gòu)建 33
2.5.3 調(diào)試與運(yùn)行 33
2.6 本章小結(jié) 34
2.7 動手實(shí)踐 34
第3章 正則表達(dá)式與文件操作 35
3.1 正則表達(dá)式 36
3.1.1 正則表達(dá)式的基本符號 36
3.1.2 在Python中使用正則表達(dá)式 38
3.1.3 正則表達(dá)式提取技巧 41
3.2 Python文件操作 44
3.2.1 使用Python讀/寫文本文件 44
3.2.2 使用Python讀/寫CSV文件 46
3.3 階段案例——半自動爬蟲開發(fā) 49
3.3.1 需求分析 49
3.3.2 核心代碼構(gòu)建 50
3.3.3 調(diào)試與運(yùn)行 51
3.4 本章小結(jié) 54
3.5 動手實(shí)踐 54
第4章 簡單的網(wǎng)頁爬蟲開發(fā) 55
4.1 使用Python獲取網(wǎng)頁源代碼 56
4.1.1 Python的第三方庫 56
4.1.2 requests介紹與安裝 56
4.1.3 使用requests獲取網(wǎng)頁源代碼 57
4.1.4 結(jié)合requests與正則表達(dá)式 59
4.2 多線程爬蟲 60
4.2.1 多進(jìn)程庫(multiprocessing) 60
4.2.2 開發(fā)多線程爬蟲 61
4.3 爬蟲的常見搜索算法 62
4.3.1 深度優(yōu)先搜索 62
4.3.2 廣度優(yōu)先搜索 63
4.3.3 爬蟲搜索算法的選擇 64
4.4 階段案例——小說網(wǎng)站爬蟲開發(fā) 64
4.4.1 需求分析 64
4.4.2 核心代碼構(gòu)建 65
4.4.3 調(diào)試與運(yùn)行 68
4.5 本章小結(jié) 68
4.6 動手實(shí)踐 68
第5章 高性能HTML內(nèi)容解析 69
5.1 HTML基礎(chǔ) 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瀏覽器輔助構(gòu)造XPath 77
5.3 Beautiful Soup4 81
5.3.1 BS4的安裝 81
5.3.2 BS4語法講解 82
5.4 階段案例——大麥網(wǎng)演出爬蟲 85
5.4.1 需求分析 85
5.4.2 核心代碼構(gòu)建 85
5.4.3 調(diào)試與運(yùn)行 86
5.5 本章小結(jié) 87
5.6 動手實(shí)踐 87
第6章 Python與數(shù)據(jù)庫 88
6.1 MongoDB 89
6.1.1 MongoDB的安裝 89
6.1.2 PyMongo的安裝與使用 94
6.1.3 使用RoboMongo執(zhí)行MongoDB命令 101
6.2 Redis 102
6.2.1 環(huán)境搭建 102
6.2.2 Redis交互環(huán)境的使用 103
6.2.3 Redis-py 104
6.3 MongoDB的優(yōu)化建議 105
6.3.1 少讀少寫少更新 105
6.3.2 能用Redis不用MongoDB 106
6.4 階段案例 107
6.4.1 需求分析 107
6.4.2 核心代碼構(gòu)建 107
6.4.3 調(diào)試與運(yùn)行 108
6.5 本章小結(jié) 108
6.6 動手實(shí)踐 108
第7章 異步加載與請求頭 109
7.1 異步加載 110
7.1.1 AJAX技術(shù)介紹 110
7.1.2 JSON介紹與應(yīng)用 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 核心代碼構(gòu)建 128
7.4.3 調(diào)試與運(yùn)行 130
7.5 本章小結(jié) 131
7.6 動手實(shí)踐 131
第8章 模擬登錄與驗(yàn)證碼 132
8.1 模擬登錄 133
8.1.1 使用Selenium模擬登錄 133
8.1.2 使用Cookies登錄 135
8.1.3 模擬表單登錄 137
8.2 驗(yàn)證碼 139
8.2.1 肉眼打碼 139
8.2.2 自動打碼 141
8.3 階段案例——自動登錄果殼網(wǎng) 144
8.3.1 需求分析 144
8.3.2 核心代碼構(gòu)建 145
8.3.3 運(yùn)行與調(diào)試 146
8.4 本章小結(jié) 147
8.5 動手實(shí)踐 147
第9章 抓包與中間人爬蟲 148
9.1 數(shù)據(jù)抓包 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 核心代碼構(gòu)建 170
9.3.3 調(diào)試運(yùn)行 172
9.4 本章小結(jié) 172
9.5 動手實(shí)踐 172
第 10章 Android原生App爬蟲 173
10.1 實(shí)現(xiàn)原理 174
10.1.1 環(huán)境搭建 175
10.1.2 使用Python操縱手機(jī) 178
10.1.3 選擇器 180
10.1.4 操作 181
10.2 綜合應(yīng)用 188
10.2.1 單設(shè)備應(yīng)用 188
10.2.2 多設(shè)備應(yīng)用(群控) 191
10.3 階段案例——BOSS直聘爬蟲 196
10.3.1 需求分析 196
10.3.2 核心代碼構(gòu)建 196
10.3.3 調(diào)試與運(yùn)行 197
10.4 本章小結(jié) 197
10.5 動手實(shí)踐 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 創(chuàng)建項(xiàng)目 203
11.2.2 在Scrapy中使用XPath 207
11.3 Scrapy與MongoDB 213
11.3.1 items和pipelines的設(shè)置 213
11.3.2 在Scrapy中使用MongoDB 215
11.4 Scrapy與Redis 218
11.4.1 Scrapy_redis的安裝和使用 218
11.4.2 使用Redis緩存網(wǎng)頁并自動去重 218
11.5 階段案例——博客爬蟲 220
11.5.1 需求分析 220
11.5.2 核心代碼構(gòu)建 221
11.5.3 調(diào)試與運(yùn)行 226
11.6 本章小結(jié) 228
11.7 動手實(shí)踐 228
第 12章 Scrapy應(yīng)用 229
12.1 中間件(Middleware) 230
12.1.1 下載器中間件 230
12.1.2 爬蟲中間件 242
12.2 爬蟲的部署 246
12.2.1 Scrapyd介紹與使用 246
12.2.2 權(quán)限管理 253
12.3 分布式架構(gòu) 258
12.3.1 分布式架構(gòu)介紹 258
12.3.2 如何選擇Master 259
12.4 階段案例 259
12.5 本章小結(jié) 259
第 13章 爬蟲開發(fā)中的法律和道德問題 260
13.1 法律問題 261
13.1.1 數(shù)據(jù)采集的法律問題 261
13.1.2 數(shù)據(jù)的使用 261
13.1.3 注冊及登錄可能導(dǎo)致的法律問題 261
13.1.4 數(shù)據(jù)存儲 261
13.1.5 內(nèi)幕交易 261
13.2 道德協(xié)議 262
13.2.1 robots.txt協(xié)議 262
13.2.2 爬取頻率 262
13.2.3 不要開源爬蟲的源代碼 262
13.3 本章小結(jié) 262