回覆列表
  • 1 # 使用者2782164100349

    資料收集需要用到爬蟲技術

    想要從平臺上面拿到資料,就要避開平臺的反爬蟲檢測

    反爬蟲常用的手段下面簡單說下:

    一般網站從三個方面反爬蟲:使用者請求的Headers,使用者行為,網站目錄和資料載入方式。前兩種比較容易遇到,大多數網站都從這些角度來反爬蟲。第三種一些應用ajax的網站會採用,這樣增大了爬取的難度。

    透過Headers反爬蟲

    從使用者請求的Headers反爬蟲是最常見的反爬蟲策略。很多網站都會對Headers的User-Agent進行檢測,還有一部分網站會對Referer進行檢測(一些資源網站的防盜鏈就是檢測Referer)。如果遇到了這類反爬蟲機制,可以直接在爬蟲中新增Headers,將瀏覽器的User-Agent複製到爬蟲的Headers中;或者將Referer值修改為目標網站域名。對於檢測Headers的反爬蟲,在爬蟲中修改或者新增Headers就能很好的繞過。

    基於使用者行為反爬蟲

    還有一部分網站是透過檢測使用者行為,例如同一IP短時間內多次訪問同一頁面,或者同一賬戶短時間內多次進行相同操作。

    大多數網站都是前一種情況,對於這種情況,使用IP代理就可以解決。可以專門寫一個爬蟲,爬取網上公開的代理ip,檢測後全部儲存起來。這樣的代理ip爬蟲經常會用到,最好自己準備一個。有了大量代理ip後可以每請求幾次更換一個ip,這在requests或者urllib2中很容易做到,這樣就能很容易的繞過第一種反爬蟲。

    對於第二種情況,可以在每次請求後隨機間隔幾秒再進行下一次請求。有些有邏輯漏洞的網站,可以透過請求幾次,退出登入,重新登入,繼續請求來繞過同一賬號短時間內不能多次進行相同請求的限制。

    動態頁面的反爬蟲

    上述的幾種情況大多都是出現在靜態頁面,還有一部分網站,我們需要爬取的資料是透過ajax請求得到,或者透過JavaScript生成的。首先用Firebug或者HttpFox對網路請求進行分析。如果能夠找到ajax請求,也能分析出具體的引數和響應的具體含義,我們就能採用上面的方法,直接利用requests或者urllib2模擬ajax請求,對響應的json進行分析得到需要的資料。

    上面就是一些常見的反爬蟲手段,如果你想要從平臺上拿你想要的資料,你最好是找一個技術團隊來幫你,因為只是一個工具的話,用不了多長時間,而且平臺也會一直動態更新

    關於資料這塊兒,我們這邊有專業的技術團隊,如果你有資料方面的需求,可以來找我們

  • 中秋節和大豐收的關聯?
  • 我們有沒有愛過,歌詞?