Python網(wǎng)絡爬蟲權(quán)威指南 第2版
定 價:79 元
- 作者:[美] 瑞安·米切爾(Ryan Mitchell)
- 出版時間:2019/4/1
- ISBN:9787115509260
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁碼:241
- 紙張:
- 版次:02
- 開本:16開
本書采用簡潔強大的Python 語言,介紹了網(wǎng)頁抓取,并為抓取新式網(wǎng)絡中的各種數(shù)據(jù)類型提供了全面的指導。第一部分重點介紹網(wǎng)頁抓取的基本原理:如何用Python 從網(wǎng)絡服務器請求信息,如何對服務器的響應進行基本處理,以及如何以自動化手段與網(wǎng)站進行交互。第二部分介紹如何用網(wǎng)絡爬蟲測試網(wǎng)站,自動化處理,以及如何通過更多的方式接入網(wǎng)絡。
作為一種采集和理解網(wǎng)絡上海量信息的方式,網(wǎng)頁抓取技術(shù)變得越來越重要。而編寫簡單的自動化程序(網(wǎng)絡爬蟲),一次就可以自動抓取上百萬個網(wǎng)頁中的信息,實現(xiàn)高效的數(shù)據(jù)采集和處理,滿足大量數(shù)據(jù)需求應用場景。
本書采用簡潔強大的Python語言,全面介紹網(wǎng)頁抓取技術(shù),解答諸多常見問題,是掌握從數(shù)據(jù)爬取到數(shù)據(jù)清洗全流程的系統(tǒng)實踐指南。書中內(nèi)容分為兩部分。第一部分深入講解網(wǎng)頁抓取的基礎知識,重點介紹BeautifulSoup、Scrapy等Python庫的應用。第二部分介紹網(wǎng)絡爬蟲編寫相關(guān)的主題,以及各種數(shù)據(jù)抓取工具和應用程序,幫你深入互聯(lián)網(wǎng)的每個角落,分析原始數(shù)據(jù),獲取數(shù)據(jù)背后的故事,輕松解決遇到的各類網(wǎng)頁抓取問題。第2版全面更新,新增網(wǎng)絡爬蟲模型、Scrapy和并行網(wǎng)頁抓取相關(guān)章節(jié)。
- 解析復雜的HTML頁面
- 使用Scrapy框架開發(fā)爬蟲
- 學習存儲數(shù)據(jù)的方法
- 從文檔中讀取和提取數(shù)據(jù)
- 清洗格式糟糕的數(shù)據(jù)
- 自然語言處理
- 通過表單和登錄窗口抓取數(shù)據(jù)
- 抓取JavaScript及利用API抓取數(shù)據(jù)
- 圖像識別與文字處理
- 避免抓取陷阱和反爬蟲策略
- 使用爬蟲測試網(wǎng)站
瑞安·米切爾(Ryan Mitchell) 數(shù)據(jù)科學家、軟件工程師,有豐富的網(wǎng)絡爬蟲和數(shù)據(jù)分析實戰(zhàn)經(jīng)驗,目前就職于美國格理集團,經(jīng)常為網(wǎng)頁數(shù)據(jù)采集項目提供咨詢服務,并在美國東北大學和美國歐林工程學院任教。
前言 xi
第 一部分 創(chuàng)建爬蟲
第 1 章 初見網(wǎng)絡爬蟲 3
1.1 網(wǎng)絡連接 3
1.2 BeautifulSoup 簡介 5
1.2.1 安裝BeautifulSoup 6
1.2.2 運行BeautifulSoup 8
1.2.3 可靠的網(wǎng)絡連接以及異常的處理 9
第 2 章 復雜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 導航樹 18
2.3 正則表達式 22
2.4 正則表達式和BeautifulSoup 25
2.5 獲取屬性 26
2.6 Lambda 表達式 26
第3 章 編寫網(wǎng)絡爬蟲 28
3.1 遍歷單個域名 28
3.2 抓取整個網(wǎng)站 32
3.3 在互聯(lián)網(wǎng)上抓取 36
第4 章 網(wǎng)絡爬蟲模型 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)絡爬蟲模型的思考 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ù)與最佳實踐 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 安裝與設置 125
9.3.2 用NLTK 做統(tǒng)計分析 126
9.3.3 用NLTK 做詞性分析 128
9.4 其他資源 131
第 10 章 穿越網(wǎng)頁表單與登錄窗口進行抓取 132
10.1 Python Requests 庫 132
10.2 提交一個基本表單 133
10.3 單選按鈕、復選框和其他輸入 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 響應的介紹 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 再說一點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 讀取驗證碼與訓練Tesseract 178
13.4 獲取驗證碼并提交答案 183
第 14 章 避開抓取陷阱 186
14.1 道德規(guī)范 186
14.2 讓網(wǎng)絡機器人看著像人類用戶 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 進程與線程 206
16.2 多線程抓取 207
16.2.1 競爭條件與隊列 209
16.2.2 threading 模塊 212
16.3 多進程抓取 214
16.3.1 多進程抓取 216
16.3.2 進程間通信 217
16.4 多進程抓取的另一種方法 219
第 17 章 遠程抓取 221
17.1 為什么要用遠程服務器 221
17.1.1 避免IP 地址被封殺 221
17.1.2 移植性與擴展性 222
17.2 Tor 代理服務器 223
17.3 遠程主機 224
17.3.1 從網(wǎng)站主機運行 225
17.3.2 從云主機運行 225
17.4 其他資源 227
第 18 章 網(wǎng)頁抓取的法律與道德約束 228
18.1 商標、版權(quán)、專利 228
18.2 侵害動產(chǎn) 230
18.3 計算機欺詐與濫用法 232
18.4 robots.txt 和服務協(xié)議 233
18.5 3 個網(wǎng)絡爬蟲 236
18.5.1 eBay 起訴Bidder’s Edge 侵害其動產(chǎn) 236
18.5.2 美國政府起訴Auernheimer 與《計算機欺詐與濫用法》 237
18.5.3 Field 起訴Google:版權(quán)和robots.txt 239
18.6 勇往直前 239
關(guān)于作者 241
關(guān)于封面 241