摘要:都說年末了,該給自己寫寫總結了。我現在做一些簡單的爬蟲都會用它。并且對數據的實時性要求較高,或者爬數據的時候封的太厲害了。對于這一類的爬蟲。消息隊列用于分發消息給某個爬蟲節點。爬蟲節點完成具體的爬蟲,格式化爬蟲數據。最后,感謝我的,謝謝
都說年末了,該給自己寫寫總結了。今天我想談一談的是我在公司這一年多里的負責的部分工作---爬蟲。做了這么久的爬蟲,是該寫點什么,留下點什么。在我所負責的這一段時間了。我總結了一下大概有以下幾類爬蟲設計思想。
簡單服務器定時爬蟲
客戶端爬蟲
lua解析
javascript解析
服務器離線爬蟲
下面在來細聊以下。
服務器-定時簡單爬蟲在最開始的時候,我們做的就是這個。這應該是最簡單的爬蟲了。搜索引擎搜出來的大概就是這一類了。
這一類的爬蟲特點是我只需要爬取一個網站的某一部分數據,發起http請求做html解析,然后存數據庫,就完了。比如一些其他網站提供的一些公共數據,或者不要求實時性的數據。如汽車之家的汽車數據,如英雄聯盟的英雄數據,如政府網站的某些展示數據。我用過scrapy來抓取dota2的一些數據,后來發現scrapy不一定完全在自己掌控中,我自己寫了一個爬蟲框架,叫Tspider。我現在做一些簡單的爬蟲都會用它。基于php的協程與curl_multi_*函數集實現的。單進程可到2000有效處理/min。
這一類的爬蟲處理流程大概類似如下
網上宣傳的諸如《xxx抓取淘寶MM照片》、《我從知乎偷取了多少數據》等等爬蟲,大概如此。《21天精通xx語言》的既視感。
這一類的爬蟲的優點大概就是簡單吧。
客戶端解析(lua、javascript)我們公司是做移動端產品的,假如你也恰好是有(android/ios)客戶端支持的。并且對數據的實時性要求較高,或者爬數據的時候ip封的太厲害了。可以試試我下面說的方式。我給他取名叫客戶端解析。
在這一類爬蟲中,需要客戶端嵌入腳本執行引擎。把http的請求與數據解析放到客戶端去執行。最后把數據呈現出來或者上報給服務器。準確度、實時性較高。
腳本:腳本的作用不過是把對應網站的數據(json、jsonp,html等等)轉換為我們需要的數據(格式化數據)。當對方做出改變,我們只需要改變腳本就行。
策略:策略的作用是告訴客戶端,你們需要某部分時候,去執行腳本中的哪個方法? 是否需要緩沖?是否需要展示原始網站的內容?等等一些通過服務器控制客戶端行為的東西。
離線爬蟲:是否需要在服務器爬取,將請求丟給消息隊列,離線爬蟲系統自己一邊玩去。
這種方式至少有兩個優點:ip離散,實時性較高。
服務器-離線爬蟲系統對于絕大部分服務,數據的爬取需求,還是需要在服務器完成的。對于這一類的爬蟲。架構的設計,需要有很好的擴展性。
爬取請求從后臺控制、對外網關而來。
爬蟲觸發器,就是通過消息隊列告訴爬蟲節點啥時候爬,爬誰的數據。
后臺控制,可以控制支持哪些網站的數據,告警,異常管理。
消息隊列用于分發消息給某個爬蟲節點。
爬蟲節點:完成具體的爬蟲,格式化爬蟲數據。支持某個網站的爬取,通常修改此次就行了,這里也需要做好統計,做好告警。
去重:去重可以試試布隆過濾器與simhash指紋算法和海明距離比較。
思想或叫準則吧總結一下:
只關心對的,不關心錯的。錯誤的,你永遠也枚舉不完。
在分層結構中,應該是越往最內層,數據(請求)越小,有效數據(請求)占比越高。
備份思想很重要。如果一臺機器掛斷的概率是百分之一,兩臺機器同時掛掉的概率就是萬分之一。
沒有什么萬能鑰匙,具體問題,具體分析,具體解決。
沒有什么完美的解決方案,有些時候需要根據業務做一些取舍。
最后,感謝我的leader——corey,謝謝!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/38354.html
摘要:課程的第單元中嵩天老師給出的中國大學排名爬蟲優化代碼如果把中的改為就會出錯,原因年各校排名數字的格式為而年各校排名數字的格式為,針對這個問題,我對嵩天老師的代碼做了一點修改,可能不是很漂亮,但是實現了功能我很開心。 本文是學習http://www.icourse163.org/lea... 課程的代碼實現和反思。 課程的第6單元中嵩天老師給出的中國大學排名爬蟲優化代碼如果把url中的2...
摘要:課程的第單元中嵩天老師給出的中國大學排名爬蟲優化代碼如果把中的改為就會出錯,原因年各校排名數字的格式為而年各校排名數字的格式為,針對這個問題,我對嵩天老師的代碼做了一點修改,可能不是很漂亮,但是實現了功能我很開心。 本文是學習http://www.icourse163.org/lea... 課程的代碼實現和反思。 課程的第6單元中嵩天老師給出的中國大學排名爬蟲優化代碼如果把url中的2...
摘要:一個前端菜鳥的成長記現在才總結似乎有點晚,但聊勝于無,記錄一下我的,畢業的第一年,對于人生意義重大的一年。感謝勇哥新哥,給予我機會去做更多的嘗試。 一個前端菜鳥的成長記 現在才總結似乎有點晚,但聊勝于無,記錄一下我的2016,畢業的第一年,對于人生意義重大的一年。 我的求職之路 打從進入了大四之后,便深深的意識到了就業的壓力,并一直在做著邁向社會的準備。從2015年9月開始,便開始投簡...
摘要:不覺間,已悄然離去恍然后,正慢慢襲來。已完成一期內容,只包含買家點餐功能,二期準備做賣家及支付功能。經過考慮和評估,我決定對這兩個選擇進行一個折中。項目部署,及代理轉發等配置。發現最近,已經對非技術類書籍少了很多興趣。 不覺間,2016已悄然離去;恍然后,2017正慢慢襲來。 又到了總結過去,展望未來的時候了,那就先總結16年的收獲和經驗教訓,再展望17年對自己及行業的一些期望吧。 1...
摘要:不覺間,已悄然離去恍然后,正慢慢襲來。已完成一期內容,只包含買家點餐功能,二期準備做賣家及支付功能。經過考慮和評估,我決定對這兩個選擇進行一個折中。項目部署,及代理轉發等配置。發現最近,已經對非技術類書籍少了很多興趣。 不覺間,2016已悄然離去;恍然后,2017正慢慢襲來。 又到了總結過去,展望未來的時候了,那就先總結16年的收獲和經驗教訓,再展望17年對自己及行業的一些期望吧。 1...
閱讀 1784·2023-04-25 14:33
閱讀 3386·2021-11-22 15:22
閱讀 2184·2021-09-30 09:48
閱讀 2697·2021-09-14 18:01
閱讀 1747·2019-08-30 15:55
閱讀 3010·2019-08-30 15:53
閱讀 2148·2019-08-30 15:44
閱讀 654·2019-08-30 10:58