Python網(wǎng)絡(luò)爬蟲(chóng)權(quán)威指南 第2版
定 價(jià):79 元
- 作者:[美] 瑞安·米切爾(Ryan Mitchell)
- 出版時(shí)間:2019/4/1
- ISBN:9787115509260
- 出 版 社:人民郵電出版社
- 中圖法分類(lèi):TP311.561
- 頁(yè)碼:241
- 紙張:
- 版次:02
- 開(kāi)本:16開(kāi)
本書(shū)采用簡(jiǎn)潔強(qiáng)大的Python 語(yǔ)言,介紹了網(wǎng)頁(yè)抓取,并為抓取新式網(wǎng)絡(luò)中的各種數(shù)據(jù)類(lèi)型提供了全面的指導(dǎo)。第一部分重點(diǎn)介紹網(wǎng)頁(yè)抓取的基本原理:如何用Python 從網(wǎng)絡(luò)服務(wù)器請(qǐng)求信息,如何對(duì)服務(wù)器的響應(yīng)進(jìn)行基本處理,以及如何以自動(dòng)化手段與網(wǎng)站進(jìn)行交互。第二部分介紹如何用網(wǎng)絡(luò)爬蟲(chóng)測(cè)試網(wǎng)站,自動(dòng)化處理,以及如何通過(guò)更多的方式接入網(wǎng)絡(luò)。
作為一種采集和理解網(wǎng)絡(luò)上海量信息的方式,網(wǎng)頁(yè)抓取技術(shù)變得越來(lái)越重要。而編寫(xiě)簡(jiǎn)單的自動(dòng)化程序(網(wǎng)絡(luò)爬蟲(chóng)),一次就可以自動(dòng)抓取上百萬(wàn)個(gè)網(wǎng)頁(yè)中的信息,實(shí)現(xiàn)高效的數(shù)據(jù)采集和處理,滿足大量數(shù)據(jù)需求應(yīng)用場(chǎng)景。
本書(shū)采用簡(jiǎn)潔強(qiáng)大的Python語(yǔ)言,全面介紹網(wǎng)頁(yè)抓取技術(shù),解答諸多常見(jiàn)問(wèn)題,是掌握從數(shù)據(jù)爬取到數(shù)據(jù)清洗全流程的系統(tǒng)實(shí)踐指南。書(shū)中內(nèi)容分為兩部分。第一部分深入講解網(wǎng)頁(yè)抓取的基礎(chǔ)知識(shí),重點(diǎn)介紹BeautifulSoup、Scrapy等Python庫(kù)的應(yīng)用。第二部分介紹網(wǎng)絡(luò)爬蟲(chóng)編寫(xiě)相關(guān)的主題,以及各種數(shù)據(jù)抓取工具和應(yīng)用程序,幫你深入互聯(lián)網(wǎng)的每個(gè)角落,分析原始數(shù)據(jù),獲取數(shù)據(jù)背后的故事,輕松解決遇到的各類(lèi)網(wǎng)頁(yè)抓取問(wèn)題。第2版全面更新,新增網(wǎng)絡(luò)爬蟲(chóng)模型、Scrapy和并行網(wǎng)頁(yè)抓取相關(guān)章節(jié)。
- 解析復(fù)雜的HTML頁(yè)面
- 使用Scrapy框架開(kāi)發(fā)爬蟲(chóng)
- 學(xué)習(xí)存儲(chǔ)數(shù)據(jù)的方法
- 從文檔中讀取和提取數(shù)據(jù)
- 清洗格式糟糕的數(shù)據(jù)
- 自然語(yǔ)言處理
- 通過(guò)表單和登錄窗口抓取數(shù)據(jù)
- 抓取JavaScript及利用API抓取數(shù)據(jù)
- 圖像識(shí)別與文字處理
- 避免抓取陷阱和反爬蟲(chóng)策略
- 使用爬蟲(chóng)測(cè)試網(wǎng)站
瑞安·米切爾(Ryan Mitchell) 數(shù)據(jù)科學(xué)家、軟件工程師,有豐富的網(wǎng)絡(luò)爬蟲(chóng)和數(shù)據(jù)分析實(shí)戰(zhàn)經(jīng)驗(yàn),目前就職于美國(guó)格理集團(tuán),經(jīng)常為網(wǎng)頁(yè)數(shù)據(jù)采集項(xiàng)目提供咨詢服務(wù),并在美國(guó)東北大學(xué)和美國(guó)歐林工程學(xué)院任教。
前言 xi
第 一部分 創(chuàng)建爬蟲(chóng)
第 1 章 初見(jiàn)網(wǎng)絡(luò)爬蟲(chóng) 3
1.1 網(wǎng)絡(luò)連接 3
1.2 BeautifulSoup 簡(jiǎn)介 5
1.2.1 安裝BeautifulSoup 6
1.2.2 運(yùn)行BeautifulSoup 8
1.2.3 可靠的網(wǎng)絡(luò)連接以及異常的處理 9
第 2 章 復(fù)雜HTML 解析 13
2.1 不是一直都要用錘子 13
2.2 再端一碗BeautifulSoup 14
2.2.1 BeautifulSoup 的find() 和find_all() 16
2.2.2 其他BeautifulSoup 對(duì)象 18
2.2.3 導(dǎo)航樹(shù) 18
2.3 正則表達(dá)式 22
2.4 正則表達(dá)式和BeautifulSoup 25
2.5 獲取屬性 26
2.6 Lambda 表達(dá)式 26
第3 章 編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng) 28
3.1 遍歷單個(gè)域名 28
3.2 抓取整個(gè)網(wǎng)站 32
3.3 在互聯(lián)網(wǎng)上抓取 36
第4 章 網(wǎng)絡(luò)爬蟲(chóng)模型 41
4.1 規(guī)劃和定義對(duì)象 41
4.2 處理不同的網(wǎng)站布局 45
4.3 結(jié)構(gòu)化爬蟲(chóng) 49
4.3.1 通過(guò)搜索抓取網(wǎng)站 49
4.3.2 通過(guò)鏈接抓取網(wǎng)站 52
4.3.3 抓取多種類(lèi)型的頁(yè)面 54
4.4 關(guān)于網(wǎng)絡(luò)爬蟲(chóng)模型的思考 55
第5 章 Scrapy 57
5.1 安裝Scrapy 57
5.2 創(chuàng)建一個(gè)簡(jiǎn)易爬蟲(chóng) 59
5.3 帶規(guī)則的抓取 60
5.4 創(chuàng)建item 64
5.5 輸出item 66
5.6 item 管線組件 66
5.7 Scrapy 日志管理 69
5.8 更多資源 70
第6 章 存儲(chǔ)數(shù)據(jù) 71
6.1 媒體文件 71
6.2 把數(shù)據(jù)存儲(chǔ)到CSV 74
6.3 MySQL 75
6.3.1 安裝MySQL 76
6.3.2 基本命令 78
6.3.3 與Python 整合 81
6.3.4 數(shù)據(jù)庫(kù)技術(shù)與最佳實(shí)踐 84
6.3.5 MySQL 里的“六度空間游戲” 86
6.4 Email 88
第二部分 高級(jí)網(wǎng)頁(yè)抓取
第7 章 讀取文檔 93
7.1 文檔編碼 93
7.2 純文本 94
7.3 CSV 98
7.4 PDF 100
7.5 微軟Word 和.docx 102
第8 章 數(shù)據(jù)清洗 106
8.1 編寫(xiě)代碼清洗數(shù)據(jù) 106
8.2 數(shù)據(jù)存儲(chǔ)后再清洗 111
第9 章 自然語(yǔ)言處理 115
9.1 概括數(shù)據(jù) 116
9.2 馬爾可夫模型 119
9.3 自然語(yǔ)言工具包 124
9.3.1 安裝與設(shè)置 125
9.3.2 用NLTK 做統(tǒng)計(jì)分析 126
9.3.3 用NLTK 做詞性分析 128
9.4 其他資源 131
第 10 章 穿越網(wǎng)頁(yè)表單與登錄窗口進(jìn)行抓取 132
10.1 Python Requests 庫(kù) 132
10.2 提交一個(gè)基本表單 133
10.3 單選按鈕、復(fù)選框和其他輸入 134
10.4 提交文件和圖像 136
10.5 處理登錄和cookie 136
10.6 其他表單問(wèn)題 139
第 11 章 抓取JavaScript 140
11.1 JavaScript 簡(jiǎn)介 140
11.2 Ajax 和動(dòng)態(tài)HTML 143
11.2.1 在Python 中用Selenium 執(zhí)行JavaScript 144
11.2.2 Selenium 的其他webdriver 149
11.3 處理重定向 150
11.4 關(guān)于JavaScript 的最后提醒 151
第 12 章 利用API 抓取數(shù)據(jù) 152
12.1 API 概述 152
12.1.1 HTTP 方法和API 154
12.1.2 更多關(guān)于API 響應(yīng)的介紹 155
12.2 解析JSON 數(shù)據(jù) 156
12.3 無(wú)文檔的API 157
12.3.1 查找無(wú)文檔的API 159
12.3.2 記錄未被記錄的API 160
12.3.3 自動(dòng)查找和記錄API 160
12.4 API 與其他數(shù)據(jù)源結(jié)合 163
12.5 再說(shuō)一點(diǎn)API 165
第 13 章 圖像識(shí)別與文字處理 167
13.1 OCR 庫(kù)概述 168
13.1.1 Pillow 168
13.1.2 Tesseract 168
13.1.3 NumPy 170
13.2 處理格式規(guī)范的文字 171
13.2.1 自動(dòng)調(diào)整圖像 173
13.2.2 從網(wǎng)站圖片中抓取文字 176
13.3 讀取驗(yàn)證碼與訓(xùn)練Tesseract 178
13.4 獲取驗(yàn)證碼并提交答案 183
第 14 章 避開(kāi)抓取陷阱 186
14.1 道德規(guī)范 186
14.2 讓網(wǎng)絡(luò)機(jī)器人看著像人類(lèi)用戶 187
14.2.1 修改請(qǐng)求頭 187
14.2.2 用JavaScript 處理cookie 189
14.2.3 時(shí)間就是一切 191
14.3 常見(jiàn)表單安全措施 191
14.3.1 隱含輸入字段值 192
14.3.2 避免蜜罐 192
14.4 問(wèn)題檢查表 194
第 15 章 用爬蟲(chóng)測(cè)試網(wǎng)站 196
15.1 測(cè)試簡(jiǎn)介 196
15.2 Python 單元測(cè)試 197
15.3 Selenium 單元測(cè)試 201
15.4 單元測(cè)試與Selenium 單元測(cè)試的選擇 205
第 16 章 并行網(wǎng)頁(yè)抓取 206
16.1 進(jìn)程與線程 206
16.2 多線程抓取 207
16.2.1 競(jìng)爭(zhēng)條件與隊(duì)列 209
16.2.2 threading 模塊 212
16.3 多進(jìn)程抓取 214
16.3.1 多進(jìn)程抓取 216
16.3.2 進(jìn)程間通信 217
16.4 多進(jìn)程抓取的另一種方法 219
第 17 章 遠(yuǎn)程抓取 221
17.1 為什么要用遠(yuǎn)程服務(wù)器 221
17.1.1 避免IP 地址被封殺 221
17.1.2 移植性與擴(kuò)展性 222
17.2 Tor 代理服務(wù)器 223
17.3 遠(yuǎn)程主機(jī) 224
17.3.1 從網(wǎng)站主機(jī)運(yùn)行 225
17.3.2 從云主機(jī)運(yùn)行 225
17.4 其他資源 227
第 18 章 網(wǎng)頁(yè)抓取的法律與道德約束 228
18.1 商標(biāo)、版權(quán)、專(zhuān)利 228
18.2 侵害動(dòng)產(chǎn) 230
18.3 計(jì)算機(jī)欺詐與濫用法 232
18.4 robots.txt 和服務(wù)協(xié)議 233
18.5 3 個(gè)網(wǎng)絡(luò)爬蟲(chóng) 236
18.5.1 eBay 起訴Bidder’s Edge 侵害其動(dòng)產(chǎn) 236
18.5.2 美國(guó)政府起訴Auernheimer 與《計(jì)算機(jī)欺詐與濫用法》 237
18.5.3 Field 起訴Google:版權(quán)和robots.txt 239
18.6 勇往直前 239
關(guān)于作者 241
關(guān)于封面 241