2010-05-29 39 views
4

這是我的問題最接近的問題,它並沒有真正回答得很好IMO:刮網站的要求/第二標準是什麼?

Web scraping etiquette

我在尋找的答案#1:

多少請求/秒你應該做什麼刮?

現在我從一個鏈接隊列拉。每個被刮掉的站點都有自己的線程,並在請求之間休眠1秒。我要求gzip壓縮以節省帶寬。

有沒有這方面的標準?當然,所有的大型搜索引擎都有一些他們遵循的準則。

回答

2

對此沒有設定標準,這取決於網頁抓取的負載量。只要你沒有明顯地影響其他用戶的網站速度,它應該是一個可接受的抓取速度。

由於網站上的用戶數量和負載持續波動,因此動態調整抓取速度是個不錯的主意。

監控下載每個頁面的延遲時間,並且如果等待時間開始增加,開始降低您的抓取速度。實質上,網站的負載/延遲應該與您的搜刮速度成反比。

+0

我真的很喜歡延遲的想法!那是一個好主意! – eyberg 2010-05-30 00:01:48

1

當我的客戶/老闆要求我做這樣的事情時,我通常會尋求一個公共API,然後再訴諸公共網站。同時聯繫網站所有者或技術聯繫人,並要求允許這樣做將使「停止和停止」信件保持最低限度。

+1

假設沒有API存在,並假設在這種情況下,所有者將不會迴應 – eyberg 2010-05-30 00:01:04

+1

我會讓正在進行抓取的腳本模仿用戶。例如,用戶通常不會在3秒內點擊20頁。通常在我的使用中,我會停留在每個站點每3秒約1個請求。 – 2010-05-30 00:28:04

3

wikipedia article on web crawling具有大約別人在做什麼的一些信息:

卓[22]採用了10秒鐘的 間隔爲訪問,並且導線 履帶[28]使用了15個秒鐘的 默認。 MercatorWeb搜尋器 遵循適應性禮貌策略: 如果從給定服務器下載 文檔需要t秒,則 搜尋器會在 下載下一頁之前等待10秒。 Dill et al。 [30]使用1秒。

我通常嘗試5秒鐘,隨機一點,所以看起來不那麼可疑。