官术网_书友最值得收藏!

前言

為什么寫這本書

當你看前言的時候,不得不說你做出了一個聰明的選擇,因為前言中有作者對整本書的概括和學習建議,這會對大家之后的閱讀產生事半功倍的效果。在聊這本書之前,首先給大家一個本書所有配套源碼和說明的鏈接:https://github.com/qiyeboy/SpiderBook。大家可以在Github中對不懂的內容進行提問,我會盡可能地幫助大家解決問題。其實在前言開頭放這個鏈接是挺突兀的,不過確實是擔心大家不會完整地看完前言。

接下來聊一聊這本書,寫這本書的原因來自于我個人的微信公眾號:七夜安全博客。我經常在博客園、知乎和微信平臺上發布技術文章,分享一些知識和見解,有很多熱心的朋友愿意和我進行交流討論。記得2016年4月初的某一天,有一個朋友在微信后臺留言,問我怎樣將Python爬蟲技術學好,有什么書籍可以推薦。我當時回答了好長一段建議,但是那個朋友依然希望能推薦一本書籍幫助入門和提高。其實我特別能理解初學者的心情,畢竟我也是從初學者走過來的,但是確實挺糾結,不知從何推薦。于是,我專門找了一下這方面的書籍,只找到一本外國人寫的書,中文版剛出版沒多久,名字為《Python網絡數據采集》。我花了半天看了一下里面的內容,整本書條理比較清晰,容易理解,但是很多知識點都談得很淺,系統的實戰項目基本上沒有,更多的是一些代碼片段,僅僅適合一些剛剛入門的朋友。自從這件事情以后,我就下定決心寫一本Python爬蟲方面的書籍,既然國內還沒有人寫這方面的書籍,我愿意做一個拋磚引玉的人,幫助大家更好地學習爬蟲技術。

有了寫書的想法后,開始列提綱,確定書的主題和內容。由于爬蟲是一項實踐性很強的技術,因此書的主題是以實戰項目為驅動,由淺及深地講解爬蟲技術,希望你看這本書的時候是個菜鳥,認真學習完之后不再是個菜鳥,可以自主地開發Python爬蟲項目了。從寫書的那一刻開始,我就知道在書寫完之前,我應該是沒有周末了。這本書寫了大半年的時間,由于我平時有寫筆記、做總結的習慣,因此寫書的時間不是特別長,不過直到2017年年初我依然在更新內容,畢竟爬蟲技術更新得比較快,我努力將比較新的知識貢獻給大家。

在寫書的過程中,我的內心變得越來越平靜,越來越有耐心,不斷地修改更新,對每個實戰項目進行反復驗證和敲定,盡可能地貼近初學者的需求,希望能幫助他們完成蛻變。

最后做一下自我介紹,本人是一位信息安全研究人員,比較擅長網絡安全、軟件逆向,同時對大數據、機器學習和深度學習有非常濃厚的興趣,歡迎大家和我交流,共同進步。

前路多艱,學習的道路不可能一帆風順,爬蟲技術只是個開始,愿與諸君一道共克難關。

本書結構

本書總共分為三個部分:基礎篇、中級篇和深入篇。

基礎篇包括第1~7章,主要講解了什么是網絡爬蟲、如何分析靜態網站、如何開發一個完整的爬蟲。

第1~2章幫助大家回顧了Python和Web方面的知識,主要是為之后的爬蟲學習打下基礎,畢竟之后要和Python、Web打交道。

第3~5章詳細介紹了什么是網絡爬蟲、如何分析靜態網站、如何從HTML頁面中提取出有效的數據,以及對如何將數據合理地存儲成各類文件以實現持久化。

第6~7章包含了兩個實戰項目。第一個項目是基礎爬蟲,也就是一個單機爬蟲,功能是爬取百度百科的詞條,并據此講解了一個爬蟲所應該具有的全部功能組件以及編碼實現。第二個項目是分布式爬蟲,功能和基礎爬蟲一致,在單機爬蟲的基礎上進行分布式改進,幫助大家從根本上了解分布式爬蟲,消除分布式爬蟲的神秘感。

中級篇包括第8~14章,主要講解了三種數據庫的存儲方式、動態網站的抓取、協議分析和Scrapy爬蟲框架。

第8章詳細介紹了SQLite、MySQL和MongoDB三種數據庫的操作方式,幫助大家實現爬取數據存儲的多樣化。

第9章主要講解了動態網站分析和爬取的兩種思路,并通過兩個實戰項目幫助大家理解。

第10章首先探討了爬蟲開發中遇到的兩個問題——登錄爬取問題和驗證碼問題,并提供了解決辦法和分析實例。接著對Web端的爬取提供了另外的思路,當在PC網頁端爬取遇到困難時,爬取方式可以向手機網頁端轉變。

第11章接著延伸第10章的問題,又提出了兩種爬取思路。當在網頁站點爬取遇到困難時,爬取思路可以向PC客戶端和移動客戶端轉變,并通過兩個實戰項目幫助大家了解實施過程。

第12~14章由淺及深地講解了著名爬蟲框架Scrapy的運用,并通過知乎爬蟲這個實戰項目演示了Scrapy開發和部署爬蟲的整個過程。

深入篇為第15~18章,詳細介紹了大規模爬取中的去重問題以及如何通過Scrapy框架開發分布式爬蟲,最后又介紹了一個較新的爬蟲框架PySpider。

第15章主要講解了海量數據的去重方式以及各種去重方式的優劣比較。

第16~17章詳細介紹了如何通過Redis和Scrapy的結合實現分布式爬蟲,并通過云起書院實戰項目幫助大家了解整個的實現過程以及注意事項。

第18章介紹了一個較為人性化的爬蟲框架PySpider,并通過爬取豆瓣讀書信息來演示其基本功能。

以上就是本書的全部內容,看到以上介紹之后,是不是有趕快閱讀的沖動呢?不要著急,接著往下看。

本書特點及建議

本書總體來說是一本實戰型書籍,以大量系統的實戰項目為驅動,由淺及深地講解了爬蟲開發中所需的知識和技能。本書是一本適合初學者的書籍,既有對基礎知識點的講解,也涉及關鍵問題和難點的分析和解決,本書的初衷是幫助初學者夯實基礎,實現提高。還有一點要說明,這本書對編程能力是有一定要求的,希望讀者盡量熟悉Python編程。

對于學習本書有兩點建議,希望能引起讀者的注意。第一點,讀者可根據自己的實際情況選擇性地學習本書的章節,假如之前學過Python或者Web前端的知識,前兩章就可以蜻蜓點水地看一下。第二點,本書中的實戰項目是根據當時網頁的情況進行編寫的,可能當書籍出版的時候,網頁的解析規則發生改變而使項目代碼失效,因此大家從實戰項目中應該學習分析過程和編碼的實現方式,而不是具體的代碼,授人以漁永遠比授人以魚更加有價值,即使代碼失效了,大家也可以根據實際情況進行修改。

致謝

寫完這本書,才感覺到寫書不是一件容易的事情,挺耗費心血的。不過除此之外,更多的是一種滿足感,像一種別樣的創業,既緊張又刺激,同時也實現了我分享知識的心愿,算是做了一件值得回憶的事情。這是我寫的第一本書,希望是一次有益的嘗試。

感謝父母的養育之恩,是他們的默默付出支持我走到今天。

感謝我的女朋友,在每個寫書的周末都沒有辦法陪伴她,正是她的理解和支持才讓我如此準時地完稿。

感謝長春理工大學電子學會實驗室,如果沒有當年實驗室的培養,沒有兄弟們的同甘共苦,就沒有今天的我。

感謝西安電子科技大學,它所營造的氛圍使我的視野更加開闊,使我的技術水平更上一層樓。

感謝機械工業出版社的吳怡編輯,沒有她的信任和鼓勵,就沒有這本書的順利出版。

感謝Python中文社區的大力支持。

感謝本書中所用開源項目的作者,正是他們無私的奉獻才有了開發的便利。

由于作者水平有限,書中難免有誤,歡迎各位業界同仁斧正!

主站蜘蛛池模板: 准格尔旗| 内丘县| 武宣县| 冀州市| 大名县| 宝应县| 金溪县| 登封市| 汾西县| 苏州市| 塔城市| 章丘市| 呼玛县| 克拉玛依市| 小金县| 禄丰县| 治县。| 常熟市| 广州市| 荃湾区| 曲阳县| 东平县| 彭阳县| 玉林市| 林周县| 贡山| 诸暨市| 越西县| 顺平县| 肇源县| 洪湖市| 庐江县| 衡阳县| 利津县| 铅山县| 伊春市| 梅河口市| 绥中县| 阜城县| 台中县| 图木舒克市|