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