用Python寫網(wǎng)絡(luò)爬蟲 第2版
定 價:49 元
叢書名:數(shù)據(jù)科學(xué)
- 作者:[德]凱瑟琳 雅姆爾(Katharine Jarmul)、[澳]理查德 勞森(Richard Lawson)
- 出版時間:2018/8/1
- ISBN:9787115479679
- 出 版 社:人民郵電出版社
- 中圖法分類:TP311.561
- 頁碼:196
- 紙張:
- 版次:01
- 開本:16開
《用Python寫網(wǎng)絡(luò)爬蟲(第 2版》講解了如何使用Python來編寫網(wǎng)絡(luò)爬蟲程序,內(nèi)容包括網(wǎng)絡(luò)爬蟲簡介,從頁面中抓取數(shù)據(jù)的3種方法,提取緩存中的數(shù)據(jù),使用多個線程和進程進行并發(fā)抓取,抓取動態(tài)頁面中的內(nèi)容,與表單進行交互,處理頁面中的驗證碼問題,以及使用Scarpy和Portia進行數(shù)據(jù)抓取,并在最后介紹了使用本書講解的數(shù)據(jù)抓取技術(shù)對幾個真實的網(wǎng)站進行抓取的實例,旨在幫助讀者活學(xué)活用書中介紹的技術(shù)。
《用Python寫網(wǎng)絡(luò)爬蟲(第 2版》適合有一定Python編程經(jīng)驗而且對爬蟲技術(shù)感興趣的讀者閱讀。
暢銷的Python網(wǎng)絡(luò)爬蟲開發(fā)實戰(zhàn)圖書全新升級版,上一版年銷量近40000冊。
針對Python 3.6版本編寫。
提供示例完整源碼和實例網(wǎng)站搭建源碼,確保用戶能在本地成功復(fù)現(xiàn)爬取網(wǎng)站環(huán)境,并保障網(wǎng)站的穩(wěn)定性與可靠性以及代碼運行結(jié)果的可再現(xiàn)性。
Internet上包含了許多有用的數(shù)據(jù),其中大部分是可以免費公開訪問的。但是,這些數(shù)據(jù)不容易使用,它們內(nèi)嵌在網(wǎng)站的架構(gòu)和樣式中,在提取時也需要多加小心。網(wǎng)絡(luò)爬取技術(shù)作為一種收集和理解網(wǎng)絡(luò)上海量信息的方式,正變得越來越有用。
本書是使用Python 3.6的新特性來爬取網(wǎng)絡(luò)數(shù)據(jù)的入門指南。本書講解了從靜態(tài)網(wǎng)站提取數(shù)據(jù)的方法,以及如何使用數(shù)據(jù)庫和文件緩存技術(shù)來節(jié)省時間并管理服務(wù)器負載,然后介紹了如何使用瀏覽器、爬蟲和并發(fā)爬蟲開發(fā)一個更為復(fù)雜的爬蟲。
借助于PyQt和Selenium,你可以決定何時以及如何從依賴JavaScript的網(wǎng)站上爬取數(shù)據(jù),以及更好地理解在受CAPTCHA保護的復(fù)雜網(wǎng)站上提交表單的方法。本書還講解了使用Python包(比如mechanize)進行自動化處理的方法、使用Scrapy庫創(chuàng)建基于類的爬蟲的方法,以及如何在真實的網(wǎng)站上實施所學(xué)的爬蟲技巧。
本書最后還涵蓋了使用爬蟲對網(wǎng)站進行測試、遠程爬取技術(shù)、圖像處理以及其他相關(guān)的主題。
本書主要內(nèi)容如下:
使用簡單的Python程序從頁面中提取數(shù)據(jù);
構(gòu)建并發(fā)爬蟲,對頁面進行并行處理;
通過跟蹤鏈接來爬取一個網(wǎng)站;
從HTML中提取特性;
緩存下載的HTML,以供復(fù)用;
比較并發(fā)模型,確定比較快的爬蟲;
解析依賴于JavaScript的網(wǎng)站;
與表單和會話進行交互。
Katharine Jarmul是德國柏林的一位數(shù)據(jù)科學(xué)家和Python支持者。她經(jīng)營了一家數(shù)據(jù)科學(xué)咨詢公司——Kjamistan,為不同規(guī)模的企業(yè)提供諸如數(shù)據(jù)抽取、采集以及建模的服務(wù)。她從2008年開始使用Python進行編程,從2010年開始使用Python抓取網(wǎng)站,并且在使用網(wǎng)絡(luò)爬蟲進行數(shù)據(jù)分析和機器學(xué)習(xí)的不同規(guī)模的初創(chuàng)企業(yè)中工作過。讀者可以通過Twitter(@kjam)關(guān)注她的想法以及動態(tài)。
Richard Lawson來自澳大利亞,畢業(yè)于墨爾本大學(xué)計算機科學(xué)專業(yè)。畢業(yè)后,他創(chuàng)辦了一家專注于網(wǎng)絡(luò)爬蟲的公司,為超過50個國家的業(yè)務(wù)提供遠程工作。他精通世界語,可以使用漢語和韓語對話,并且積極投身于開源軟件事業(yè)。他目前正在牛津大學(xué)攻讀研究生學(xué)位,并利用業(yè)余時間研發(fā)自主無人機。
譯者介紹
李斌,畢業(yè)于北京科技大學(xué)計算機科學(xué)與技術(shù)專業(yè),獲得碩士學(xué)位。曾任職于阿里巴巴,當(dāng)前供職于凡普金科,負責(zé)應(yīng)用安全工作。熱愛Python編程和Web安全,希望以更加智能和自動化的方式提升網(wǎng)絡(luò)安全。博客地址為pythoner.com。
第 1章 網(wǎng)絡(luò)爬蟲簡介 1
1.1 網(wǎng)絡(luò)爬蟲何時有用 1
1.2 網(wǎng)絡(luò)爬蟲是否合法 2
1.3 Python 3 3
1.4 背景調(diào)研 4
1.4.1 檢查robots.txt 4
1.4.2 檢查網(wǎng)站地圖 5
1.4.3 估算網(wǎng)站大小 6
1.4.4 識別網(wǎng)站所用技術(shù) 7
1.4.5 尋找網(wǎng)站所有者 9
1.5 編寫第 一個網(wǎng)絡(luò)爬蟲 11
1.5.1 抓取與爬取的對比 11
1.5.2 下載網(wǎng)頁 12
1.5.3 網(wǎng)站地圖爬蟲 15
1.5.4 ID遍歷爬蟲 17
1.5.5 鏈接爬蟲 19
1.5.6 使用requests庫 28
1.6 本章小結(jié) 30
第 2章 數(shù)據(jù)抓取 31
2.1 分析網(wǎng)頁 32
2.2 3種網(wǎng)頁抓取方法 34
2.2.1 正則表達式 35
2.2.2 Beautiful Soup 37
2.2.3 Lxml 39
2.3 CSS選擇器和瀏覽器控制臺 41
2.4 XPath選擇器 43
2.5 LXML和家族樹 46
2.6 性能對比 47
2.7 抓取結(jié)果 49
2.7.1 抓取總結(jié) 50
2.7.2 為鏈接爬蟲添加抓取回調(diào) 51
2.8 本章小結(jié) 55
第3章 下載緩存 56
3.1 何時使用緩存 57
3.2 為鏈接爬蟲添加緩存支持 57
3.3 磁盤緩存 60
3.3.1 實現(xiàn)磁盤緩存 62
3.3.2 緩存測試 64
3.3.3 節(jié)省磁盤空間 65
3.3.4 清理過期數(shù)據(jù) 66
3.3.5 磁盤緩存缺點 68
3.4 鍵值對存儲緩存 69
3.4.1 鍵值對存儲是什么 69
3.4.2 安裝Redis 70
3.4.3 Redis概述 71
3.4.4 Redis緩存實現(xiàn) 72
3.4.5 壓縮 74
3.4.6 測試緩存 75
3.4.7 探索requests-cache 76
3.5 本章小結(jié) 78
第4章 并發(fā)下載 79
4.1 100萬個網(wǎng)頁 79
4.2 串行爬蟲 82
4.3 多線程爬蟲 83
4.4 線程和進程如何工作 83
4.4.1 實現(xiàn)多線程爬蟲 84
4.4.2 多進程爬蟲 87
4.5 性能 91
4.6 本章小結(jié) 94
第5章 動態(tài)內(nèi)容 95
5.1 動態(tài)網(wǎng)頁示例 95
5.2 對動態(tài)網(wǎng)頁進行逆向工程 98
5.3 渲染動態(tài)網(wǎng)頁 104
5.3.1 PyQt還是PySide 105
5.3.2 執(zhí)行JavaScript 106
5.3.3 使用WebKit與網(wǎng)站交互 108
5.4 渲染類 111
5.5 本章小結(jié) 117
第6章 表單交互 119
6.1 登錄表單 120
6.2 支持內(nèi)容更新的登錄腳本擴展 128
6.3 使用Selenium實現(xiàn)自動化表單處理 132
6.4 本章小結(jié) 135
第7章 驗證碼處理 136
7.1 注冊賬號 137
7.2 光學(xué)字符識別 140
7.3 處理復(fù)雜驗證碼 144
7.4 使用驗證碼處理服務(wù) 144
7.4.1 9kw入門 145
7.4.2 報告錯誤 150
7.4.3 與注冊功能集成 151
7.5 驗證碼與機器學(xué)習(xí) 153
7.6 本章小結(jié) 153
第8章 Scrapy 154
8.1 安裝Scrapy 154
8.2 啟動項目 155
8.2.1 定義模型 156
8.2.2 創(chuàng)建爬蟲 157
8.3 不同的爬蟲類型 162
8.4 使用shell命令抓取 163
8.4.1 檢查結(jié)果 165
8.4.2 中斷與恢復(fù)爬蟲 167
8.5 使用Portia編寫可視化爬蟲 170
8.5.1 安裝 170
8.5.2 標注 172
8.5.3 運行爬蟲 176
8.5.4 檢查結(jié)果 176
8.6 使用Scrapely實現(xiàn)自動化抓取 177
8.7 本章小結(jié) 178
第9章 綜合應(yīng)用 179
9.1 Google搜索引擎 179
9.2 Facebook 184
9.2.1 網(wǎng)站 184
9.2.2 Facebook API 186
9.3 Gap 188
9.4 寶馬 192
9.5 本章小結(jié) 196