【使用場景】巧用ip代理解決爬蟲執行被封鎖被限制的難題

太陽小諸葛發表於2018-12-14

  如何解決採集資料IP被封鎖限制的難題?以破解天眼查網路爬蟲為例

  小編3個月前用python開發了一套天眼查分散式網路爬蟲系統,實現對天眼查網站的資料進行實時更新採集。網站的資料模組,資料儲存結構和他一樣,當時的想法是做一個和天眼查一模一樣的資料服務平臺,然後資料來源就透過小編的網路爬蟲技術從天眼查實時同步採集。採集天眼查資料要求做的工作準備:

   1、第一步分析目標網站資料模組:

  在採用python3寫網路爬蟲程式開始爬天眼查資料時,第一步要求小編先分析這個網站有那些資料模組,整個網站有主要核心資料有以下19大模組:1基本資訊、2法人代表、3主要成員、4股東&出資、5變更記錄、6公司年報、7司法風險、8輿情事件、9崗位招聘、10商品資訊、11網站備案、12商標資料、13專利資料,、14 作品著作權軟體著作權、對外投資關係、稅務評級、行政處罰、進出口信用、企業評級信用等十九個維度的企業資料

   2、寫一個網路爬蟲demo模型分析網站的頁面結構和程式碼結構

  小編模擬http請求到天眼查目標網站,看看天眼查響應的的資料資訊是什麼樣子?

  當小編正常訪問時是可以很輕鬆得到列表的資料以及進入列表的詳細連結,小編在透過連結採集得到每個企業的詳細的資料包。

   3 採集速度太頻繁了,會被封鎖限制IP難題 怎麼解決

  當小編髮出去的http請求到天眼查網站時,正常情況下返回200狀態,說明請求合法被接受,而且會看到返回的資料,但是天眼查有自己的一套反爬機制演算法,如果檢查到同一個IP來不斷的採集他網站的資料,那麼他會被這個IP列入異常黑名單,您再去採集它網站資料時,那麼就永遠被攔截了。怎麼解決這個難題呢,其實很簡單,沒有錯用代理IP去訪問,每一次請求時全全部全部都採用代理IP方式去請求,而且這個代理IP是隨機變動的,每次請求全全部全部都不同,因此用這個代理IP技術解決了被封鎖限制的難題。

   4 天眼查2個億的資料量怎麼儲存?要求多少的代理IP

  小編在寫網路爬蟲去爬天眼查時,剛開始使用網上的免費的代理IP,結果90%全全部全部都被封鎖限制號,因此建議大家以後採集這種大資料量網站時 不要使用網上免費的IP,由於這種ip幾秒鐘就會過期,意思就是你沒有采集網或者剛剛訪問到資料時,這個IP就過期了導致你無法採整合功,因此最後小編自己搭建了自己的代理池解決了2個億天眼查資料的採集封IP難題。如果你沒有能力和條件去搭建自己的ip池,那麼建議你選用專業一些代理ip軟體,比如太陽軟體一類的。

   5 天眼查網站資料幾個億資料的儲存

  資料庫設計很重要,幾個億的資料儲存 資料庫設計很重要

  小編當時花了10天時間把天眼查網路爬蟲系統全部開發完畢,可以每天爬去百萬條資料,19個維度的資料,資料爬下來後主要是資料的儲存和管理,資料庫的小編採用了mongdb,網路爬蟲開發技術小編採用了python,幾個億的資料後臺管理系統小編採用php,小編自己架構了分散式架構系統,因此小編採集的小編採用分散式+多執行緒+叢集的方式,採集速度相當的快!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561288/viewspace-2285280/,如需轉載,請註明出處,否則將追究法律責任。

相關文章