開篇不打算寫太多技術細節(jié),只想來闡述一下計劃寫該系列博客的初衷。

首先按照慣例,先做個自我介紹。博主本人一直是從事C++相關方面的研發(fā),自認為技術很是一般(不只是謙虛),現(xiàn)在也同時兼顧在做一些大數(shù)據與云計算方面的工作,對機器學習和自然語言處理也有部分涉獵,總之是涉獵很廣,但精通的卻很少。

公司有一項業(yè)務是做政策收集及發(fā)布的,說白了就是人工查看哪些政府網站有新的政策發(fā)布了,就復制粘貼,修改下格式發(fā)布到我們的網站上,這算是一個政策信息的聚合平臺吧。但是這種方式確實是費時費力,搞得這方面的人手一直緊張。后來leader一看一直招人也不是個辦法,就想著能不能做個爬蟲來自動抓取和發(fā)布信息,后來聽說我會些python,就把這項光榮而艱巨的任務交個了我。其實博主也只是在實習期間學習過一段時間的python,這么長時間不用早就忘了,更別說之前對爬蟲只是聽說,沒有任何的概念。沒辦法困難來了,硬著頭皮也要上啊。

經過一個多月的加班奮戰(zhàn),終于在2015年年底完成了爬蟲的第一個版本。該版本是基于大名鼎鼎的Scrapy框架開發(fā)的,由于python自身的隊列不支持分布式,采用了Redis來作為url排重和隊列,以實現(xiàn)爬蟲的分布式抓?。淮鎯Σ捎玫氖莔ongodb數(shù)據庫;動態(tài)網頁采用的是Selenium模擬瀏覽器加載。其中實現(xiàn)了政策信息標題、時間、內容的自動抽取,地域、行業(yè)的自動劃分等功能。

轉眼到了2016年的年底,一年時間就這樣過去了,這一年間該爬蟲運行還算穩(wěn)定,公司leader對這套系統(tǒng)也算滿意,并表示希望能通過爬蟲覆蓋全國的網站,每當這時我都感覺羞愧難當,因為我深知這套系統(tǒng)還遠遠達不到令我滿意的效果,隨著對爬蟲技術的不斷了解,這種感覺越來越明顯,但是苦于忙于其他事情,一直抽不出時間來改,很是著急。

正好年底做計劃時leader把爬蟲的改版任務列入了明年的計劃中,博主也想借這個機會再系統(tǒng)的了解下爬蟲,并寫個系列的博客,一方面是通過總結加深理解,另一方面也希望我的文章能對一些人有所幫助。粗略規(guī)劃了下下一步要改進的方面:

  1. 增加可視化調度系統(tǒng)
    目前版本的爬蟲系統(tǒng)的啟動、停止、重啟只能通過登錄每臺虛擬機通過命令行的方式進行操作,費時費力。采用圖形化的調度處理,點點按鈕就可以啟動、停止爬蟲線程,方便快捷,而且可以實時監(jiān)控爬蟲的運行狀態(tài)。
    初步規(guī)劃使用可視化調度架構Dagobah實現(xiàn)。

  2. 改變爬蟲部署環(huán)境
    目前爬蟲部署方式是,在服務器下用VMWare建立多個Linux虛擬機,分別用來部署爬蟲。這種方式的缺