天啟IP告訴你分布式爬蟲的設計要點
天啟IP告訴你分布式爬蟲的設計要點。
一、爬蟲設計要點
想要向批量抓取某一個網站,就需要自己搭建一套爬蟲框架,搭建前要考慮幾個問題:避免被封IP,圖片驗證碼識別,數據處理等。
封IP最常見的解決方案就是使用代理IP,其中網絡爬蟲配合天啟HTTP代理,響應極速,自營服務器節點遍布全國,可以很好的輔助完成爬蟲任務。
比較簡單的圖片驗證碼可以自己通過pytesseract庫編寫識別程序,這個只能識別簡單的拍照類圖片數據。到更加復雜的比如滑動鼠標,滑塊,動態圖片驗證碼只能考慮購買打碼平臺進行識別。
至于數據處理,如果你拿到的數據發現被打亂了,解決辦法就是識別出它的擾亂規律或者通過源js代碼進行獲取通過python的execjs庫或者其他執行js的庫實現數據提取。
二、分布式爬蟲解決方案
要想實現批量抓取某個大站的數據比較好的方式是通過維護4個隊列。
1.url任務隊列--里面存放的是待抓取的url數據。
2.原始url隊列--存放的是抓取的網頁中提取出來但是還未經過處理的,處理主要是檢查是否需要抓取,是否重復抓取等。
3.原始數據隊列--存放的是爬取的數據未經過任何處理。
4.二手數據隊列--存放的是進過數據處理進程的待存儲的數據。
以上的隊列分別有4種進程進行監聽執行任務,分別是:
1.爬蟲抓取進程--監聽url任務隊列,抓取網頁數據并將抓到的原始數據丟到原始數據隊列。
2.url處理進程:監聽原始url隊列,過濾掉非正常的url和重復抓取的url。
3.數據提取進程:監聽原始數據隊列,將原始數據隊列進行關鍵數據的提取其中包括新的url和目標數據。
4.數據存儲進程:將二手數據整理過后存放到mongodb里面。