亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

爬蟲爬取頻率過高的問題

爬蟲爬取頻率過高的問題

元芳怎么了 2018-10-05 19:15:56
想寫一個抓取商城商品詳情頁的程序,開啟多個線程并行抓取,但是這樣會對被抓取的網站造成巨大壓力,導致IP被封或被請求重定向.請問如何提高抓取效率并避免抓取失???搜索引擎如lucene等也會造成對網站的頻繁訪問,它是怎么解決這個問題的?大家有啥推薦的技術?謝謝!
查看完整描述

2 回答

?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

設置爬蟲的時間間隔,可以每隔多長時間爬一次。

查看完整回答
反對 回復 2018-10-14
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

選擇爬蟲方案最終取決于需要爬去的數據量,時間成本和金錢成本。

最快速的方案 - 使用HTTP代理 
使用HTTP代理 + 異步IO,每秒可以處理100左右的HTTP請求(根據機器配置和網絡而定)。但是免費的HTTP代理一是需要自己來抓,二是并不穩定。如果使用付費的HTTP代理,這個需要錢了。
比使用HTTP代理更簡單的方案 - 多線程
每次開2-4個線程來訪問頁面,也就是同時只能處理2-4個HTTP請求,然后一直跑下去,如果需要爬去的數據量不多,這個是最簡單的解決方案。比如處理一次HTTP請求需要200ms,每次處理4個請求,一秒可以抓取20個頁面,一天可以抓取 20 * 60 * 60 * 24 = 1728000 。
最合適的方案 - 分布式
使用多線程 + 分布式,比如一臺機器抓取一天可以抓取172w數據,兩臺就是344w數據。
最終解決方案 - 分布式 + HTTP代理
根據之前爬去拉勾網的時實踐,同一個IP同時發送4個HTTP請求是不會被ban的,所以一個IP可以保證4個HTTP并發量,如果有10個HTTP代理,每秒就可以獲取200個頁面,一天可以爬去200 * 60 * 60 * 24 = 17280000個頁面。最好是分布式不使用代理,因為每加一臺機器,就相當于多了一個IP。

具體的一個IP的并發量需要自己測試,不過最好一個IP同時只處理一個HTTP連接。

其它的注意事項

  1. 設置Uuser-Agent

  2. 帶上cookie,以抓取天貓商城為例,如果不帶上cookie,天貓每次需要重定向3次才會跳轉到目標頁面


查看完整回答
反對 回復 2018-10-14
  • 2 回答
  • 0 關注
  • 1655 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號