2010-01-15 87 views
4

我正在製作一個小機器人來抓取一些網站。 現在,我只是測試它,現在,我嘗試2種設置:過於咄咄逼人的機器人?

  1. 約10個請求每3秒 - 知識產權得到禁止,所以我說 - 好吧,這是太快了。

  2. 每隔3秒發出2次請求 - IP在30分鐘後被禁止並且有1000個鏈接被抓取。

這仍然是太快?我的意思是我們正在談論接近1,000,000條鏈接,我應該收到「我們只是不想被抓取?」的消息。還是那太快了?

謝謝。

編輯

再次嘗試 - 2個請求每5秒 - 30分鐘,550個鏈接後,我得到禁止。

我會每2秒發一次請求,但我懷疑同樣會發生。我想我必須聯繫管理員 - 如果我能找到他。

+4

在禁止之前,您拉了多少頁?你有沒有要求和榮譽'robots.txt'?你在'User-Agent'頭裏放了什麼? – benzado 2010-01-15 04:24:16

+0

我沒有請求robots.txt :)但我確實在我的瀏覽器中首先檢查它。大約1000多頁,我不確定。不,我還沒有設置用戶代理。這可能會是我的下一步 – sirrocco 2010-01-15 04:29:28

+0

您是否曾嘗試聯繫您嘗試抓取的網站的管理員?您可能可以與他們合作,特別是如果他們因爲懷疑惡意活動(例如試圖收集電子郵件地址的垃圾郵件發送者)而僅禁止您。 – ZoogieZork 2010-01-15 04:38:38

回答

8

這裏有一些guidelinesforwebcrawlerpoliteness

通常,如果頁面需要花費數秒的時間下載,則在重新下載之前等待至少10x-15x是禮貌的。

另外請確保您也尊重robots.txt。

0

是的。它太快了。

通常,抓取工具每分鐘保持1個請求的速率。

老實說這是一個低爬行率。但幾分鐘後,你可以有一個URL隊列(長列表:))。您可以旋轉此列表直到下一個轉到特定的URL。

如果您可以選擇擁有某種分佈式體系結構(具有不同網絡連接(即使是HyperV或VM)的多個節點),您可能會想到更高的速度。網格中的不同主機可以更有效地獲取內容。

+0

1分鐘?該死的,這非常慢 - 明年我會完成...? – sirrocco 2010-01-15 04:30:59

+0

是的..但我可以看到離線瀏覽器的不同行爲。像winhttrack。他們太過激進,但我無法想象其中的差異。 – 2010-01-15 05:02:24

0

要考慮的最佳考慮因素之一是網站所有者。正如其他人所說,robots.txt文件是網站執行此操作的標準。

總之,在robots.txt中有3種方法用於限制請求速度。

Crawl-delay:#,一個表示請求之間等待的秒數的整數。

請求率:#/#,分子表示多少頁和分母表示每秒多少個分。即:每3秒1/3 = 1頁。

訪問時間:#### - ####,用連字符分隔的兩個4位數字代表您應該爬行他們的網站的時間(HH:MM GMT based)。

鑑於這些建議/請求,您可能會發現一些網站在其robots.txt中沒有任何這些內容,在您的控制之下。我建議以每秒至少1頁的速度將其保持在合理的速度,同時還會限制您每天消耗的頁數。