天天看點

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——導讀

《精通Python網絡爬蟲:核心技術、架構與項目實戰》——導讀

為什麼寫這本書

網絡爬蟲其實很早就出現了,最開始網絡爬蟲主要應用在各種搜尋引擎中。在搜尋引擎中,主要使用通用網絡爬蟲對網頁進行爬取及存儲。

随着大資料時代的到來,我們經常需要在海量資料的網際網路環境中搜集一些特定的資料并對其進行分析,我們可以使用網絡爬蟲對這些特定的資料進行爬取,并對一些無關的資料進行過濾,将目标資料篩選出來。對特定的資料進行爬取的爬蟲,我們将其稱為聚焦網絡爬蟲。在大資料時代,聚焦網絡爬蟲的應用需求越來越大。

目前在國内python網絡爬蟲的書籍基本上都是從國外引進翻譯的,國内的本版書籍屈指可數,故而我跟華章的副總編楊福川策劃了這本書。本書的撰寫過程中各方面的參考資料非常少,是以完成本書所花費的精力相對來說是非常大的。

本書從系統化的視角,為那些想學習python網絡爬蟲或者正在研究python網絡爬蟲的朋友們提供了一個全面的參考,讓讀者可以系統地學習python網絡爬蟲的方方面面,在了解并掌握了本書的執行個體之後,能夠獨立編寫出自己的python網絡爬蟲項目,并且能夠勝任python網絡爬蟲工程師相關崗位的工作。

同時,本書的另一個目的是,希望可以給大資料或者資料挖掘方向的從業者一定的參考,以幫助這些讀者從海量的網際網路資訊中爬取需要的資料。所謂巧婦難為無米之炊,有了這些資料之後,從事大資料或者資料挖掘方向工作的讀者就可以進行後續的分析處理了。

本書的主要内容和特色

本書是一本系統介紹python網絡爬蟲的書籍,全書注重實戰,涵蓋網絡爬蟲原理、如何手寫python網絡爬蟲、如何使用scrapy架構編寫網絡爬蟲項目等關于python網絡爬蟲的方方面面。

本書的主要特色如下:

系統講解python網絡爬蟲的編寫方法,體系清晰。

結合實戰,讓讀者能夠從零開始掌握網絡爬蟲的基本原理,學會編寫python網絡爬蟲以及scrapy爬蟲項目,進而編寫出通用爬蟲及聚焦爬蟲,并掌握常見網站的爬蟲反屏蔽手段。

有配套免費視訊,對于書中的難點,讀者可以直接觀看作者錄制的對應視訊,加深了解。

擁有多個爬蟲項目編寫案例,比如部落格類爬蟲項目案例、圖檔類爬蟲項目案例、模拟登入爬蟲項目等。除此之外,還有很多不同種類的爬蟲案例,可以讓大家在了解這些案例之後學會各種類型爬蟲的編寫方法。

總之,在了解本書内容并掌握書中執行個體之後,讀者将能勝任python網絡爬蟲工程師方向的工作并學會各種類型網絡爬蟲項目的編寫。此外,本書對于大資料或資料挖掘方向的從業者也非常有幫助,比如可以利用python網絡爬蟲輕松擷取所需的資料資訊等。

本書面向的讀者

python網絡爬蟲初學者

網絡爬蟲工程師

大資料及資料挖掘工程師

高校計算機專業的學生

其他對python或網絡爬蟲感興趣的人員

如何閱讀本書

本書分為四篇,共計20章。

第一篇為理論基礎篇(第1~2章),主要介紹了網絡爬蟲的基礎知識,讓大家從零開始對網絡爬蟲有一個比較清晰的認識。

第二篇為核心技術篇(第3~9章),詳細介紹了網絡爬蟲實作的核心技術,包括網絡爬蟲的工作原理、如何用urllib庫編寫網絡爬蟲、爬蟲的異常處理、正規表達式、爬蟲中cookie的使用、手寫糗事百科爬蟲、手寫連結爬蟲、手寫微信爬蟲、手寫多線程爬蟲、浏覽器僞裝技術、python網絡爬蟲的定向爬取技術及執行個體等。學完這一部分内容,讀者就可以寫出自己的爬蟲了。這部分的爬蟲編寫采用的是一步步純手寫的方式進行的,沒有采用架構。

第三篇為架構實作篇(第10~17章),主要詳細介紹了如何用架構實作python網絡爬蟲項目。使用架構實作python網絡爬蟲項目相較于手寫方式更加便捷,主要包括python爬蟲架構分類、scrapy架構在各系統中的安裝以及如何避免各種“坑”、如何用scrapy架構編寫爬蟲項目、scrapy架構架構詳解、scrapy的中文輸出與存儲、在scrapy中如何使用for循環實作自動網頁爬蟲、如何通過crawlspider實作自動網頁爬蟲、如何将爬取的内容寫進資料庫等。其中第12章為基礎部分,讀者需要着重掌握。

第四篇為項目實戰篇(第18~20章),分别講述了部落格類爬蟲項目、圖檔類爬蟲項目、模拟登入爬蟲項目的程式設計及實作。其中,也會涉及驗證碼處理等方面的難點知識,幫助讀者通過實際的項目掌握網絡爬蟲項目的編寫。

勘誤和支援

由于作者的水準有限,書中難免有一些錯誤或不準确的地方,懇請各位讀者不吝指正。

緻謝

感謝機械工業出版社華章公司的副總編楊福川老師與編輯李藝老師,在近一年的時間裡,是你們一次次在我遇到困難的時候,給予我鼓勵,讓我可以堅持寫下去。創作一本圖書是非常艱苦的,除了技術知識等因素之外,還需要非常大的毅力。特别感謝楊福川在寫作過程中對我各方面的支援,尤其是對我毅力的培養。

感謝csdn、51cto與極客學院,因為你們,讓我在這個領域獲得了更多的學員與支援。

感謝恩師何雲景教授對我創業方面的幫助,因為有您,我才擁有了一個更好的創業開端及工作環境。

特别緻謝

最後,需要特别感謝的是我的女友,因為編寫這本書,少了很多陪你的時間,感謝你的不離不棄與了解包容。希望未來可以加倍彌補你那些錯過吃的美食和那些錯過逛的街道。

同時,也要感謝你幫我完成書稿的校對工作,謝謝你的付出與支援。因為有了你默默的付出,我才能堅定地走下去;因為有了你不斷的支援,我才可以安心地往前沖。

感謝爺爺從小對我人生觀、價值觀的培養,您是一個非常有思想的人。

感謝遠方的父母、叔叔、姐姐,那些親情的陪伴是我最珍貴的财富。

謹以此書獻給熱愛python的朋友們!

前 言

[第一篇 理論基礎篇

第1章 什麼是網絡爬蟲

<a href="https://yq.aliyun.com/articles/90491/">1.2 為什麼要學網絡爬蟲</a>

<a href="https://yq.aliyun.com/articles/90496/">1.3 網絡爬蟲的組成</a>

<a href="https://yq.aliyun.com/articles/90514/">1.4 網絡爬蟲的類型</a>

<a href="https://yq.aliyun.com/articles/90518/">1.5 爬蟲擴充——聚焦爬蟲</a>

<a href="https://yq.aliyun.com/articles/90522/">1.6 小結</a>

[第2章 網絡爬蟲技能總覽

<a href="https://yq.aliyun.com/articles/90533/">2.2 搜尋引擎核心</a>

<a href="https://yq.aliyun.com/articles/90535/">2.3 使用者爬蟲的那些事兒</a>

<a href="https://yq.aliyun.com/articles/90539/">2.4 小結</a>

[第二篇 核心技術篇

第3章 網絡爬蟲實作原理與實作技術

<a href="https://yq.aliyun.com/articles/90545/">3.2 爬行政策</a>

<a href="https://yq.aliyun.com/articles/90548/">3.3 網頁更新政策</a>

<a href="https://yq.aliyun.com/articles/90553/">3.4 網頁分析算法</a>

<a href="https://yq.aliyun.com/articles/90589/">3.5 身份識别</a>

<a href="https://yq.aliyun.com/articles/90593/">3.6 網絡爬蟲實作技術</a>

<a href="https://yq.aliyun.com/articles/90609/">3.7 執行個體——metaseeker</a>

<a href="https://yq.aliyun.com/articles/90611/">3.8 小結</a>

第4章 urllib庫與urlerror異常處理

4.1 什麼是urllib庫

4.2 快速使用urllib爬取網頁

4.3 浏覽器的模拟——headers屬性

4.4 逾時設定

4.5 http協定請求實戰

4.6 代理伺服器的設定

4.7 debuglog實戰

4.8 異常處理神器——urlerror實戰

4.9 小結

第5章 正規表達式與cookie的使用

5.1 什麼是正規表達式

5.2 正規表達式基礎知識

5.3 正規表達式常見函數

5.4 常見執行個體解析

5.5 什麼是cookie

5.6 cookiejar實戰精析

5.7 小結

第6章 手寫python爬蟲

6.1 圖檔爬蟲實戰

6.2 連結爬蟲實戰

6.3 糗事百科爬蟲實戰

6.4 微信爬蟲實戰

6.5 什麼是多線程爬蟲

6.6 多線程爬蟲實戰

6.7 小結

第7章 學會使用fiddler

7.1 什麼是fiddler

7.2 爬蟲與fiddler的關系

7.3 fiddler的基本原理與基本界面

7.4 fiddler捕獲會話功能

7.5 使用quickexec指令行

7.6 fiddler斷點功能

7.7 fiddler會話查找功能

7.8 fiddler的其他功能

7.9 小結

第8章 爬蟲的浏覽器僞裝技術

8.1 什麼是浏覽器僞裝技術

8.2 浏覽器僞裝技術準備工作

8.3 爬蟲的浏覽器僞裝技術實戰

8.4 小結

第9章 爬蟲的定向爬取技術

9.1 什麼是爬蟲的定向爬取技術

9.2 定向爬取的相關步驟與政策

9.3 定向爬取實戰

9.4 小結

第三篇 架構實作篇

第10章 了解python爬蟲架構

10.1 什麼是python爬蟲架構

10.2 常見的python爬蟲架構

10.3 認識scrapy架構

10.4 認識crawley架構

10.5 認識portia架構

10.6 認識newspaper架構

10.7 認識python-goose架構

10.8 小結

第11章 爬蟲利器——scrapy安裝與配置

11.1 在windows7下安裝及配置scrapy實戰詳解

11.2 在linux(centos)下安裝及配置scrapy實戰詳解

11.3 在mac下安裝及配置scrapy實戰詳解

11.4 小結

第12章 開啟scrapy爬蟲項目之旅

12.1 認識scrapy項目的目錄結構

12.2 用scrapy進行爬蟲項目管理

12.3 常用工具指令

12.4 實戰:items的編寫

12.5 實戰:spider的編寫

12.6 xpath基礎

12.7 spider類參數傳遞

12.8 用xmlfeedspider來分析xml源

12.9 學會使用csvfeedspider

12.10 scrapy爬蟲多開技能

12.11 避免被禁止

12.12 小結

第13章 scrapy核心架構

13.1 初識scrapy架構

13.2 常用的scrapy元件詳解

13.3 scrapy工作流

13.4 小結

第14章 scrapy中文輸出與存儲

14.1 scrapy的中文輸出

14.2 scrapy的中文存儲

14.3 輸出中文到json檔案

14.4 小結

第15章 編寫自動爬取網頁的爬蟲

15.1 實戰:items的編寫

15.2 實戰:pipelines的編寫

15.3 實戰:settings的編寫

15.4 自動爬蟲編寫實戰

15.5 調試與運作

15.6 小結

第16章 crawlspider

16.1 初識crawlspider

16.2 連結提取器

16.3 實戰:crawlspider執行個體

16.4 小結

第17章 scrapy進階應用

17.1 如何在python3中操作資料庫

17.2 爬取内容寫進mysql

17.3 小結

第四篇 項目實戰篇

第18章 部落格類爬蟲項目

18.1 部落格類爬蟲項目功能分析

18.2 部落格類爬蟲項目實作思路

18.3 部落格類爬蟲項目編寫實戰

18.4 調試與運作

18.5 小結

第19章 圖檔類爬蟲項目

19.1 圖檔類爬蟲項目功能分析

19.2 圖檔類爬蟲項目實作思路

19.3 圖檔類爬蟲項目編寫實戰

19.4 調試與運作

19.5 小結

第20章 模拟登入爬蟲項目

20.1 模拟登入爬蟲項目功能分析

20.2 模拟登入爬蟲項目實作思路

20.3 模拟登入爬蟲項目編寫實戰

20.4 調試與運作

20.5 小結