2009-04-28 60 views
8

我有一個簡單的網絡爬蟲從網站的網站地圖請求所有頁面,我需要緩存和索引。經過多次請求,網站開始提供空白頁面。正確的禮儀爲網絡爬行器http請求

他們的robots.txt除了鏈接到他們的站點地圖外沒有任何內容,所以我假設我沒有違反他們的「規則」。我有一個描述性標題,鏈接到我的意圖是什麼,我抓取的唯一頁面來自他們的站點地圖。

http狀態碼全部仍然正常,所以我只能想象它們會在短時間內阻止大量的http請求。什麼被認爲是請求之間的合理延遲量?

是否有任何其他因素可能導致此問題被忽略?

+0

你是什麼意思,他們的robots.txt中沒有任何東西除了一個鏈接到他們的網站地圖? – freespace 2009-04-28 16:09:58

回答

8

每個網站都有不同的抓取和濫用特徵,它尋找。

任何爬蟲的關鍵是模仿人類活動,並服從robots.txt。

一個詳盡的抓取會跳出一些網站,無論你走得有多慢,他們都會關閉你,而有些主持人並不介意爬行者一路碾壓,一口氣吮吸所有東西。

  • 一般而言,您不希望以比每分鐘6(關於人的速度)更快的速度請求頁面。
  • 按照網頁的可見度排列按順序排列按照順序,將更安全。
  • 嘗試忽略網頁上不可見的鏈接(許多人使用蜜罐)。

如果一切都失敗了,請不要每分鐘更快地請求一頁。如果一個網站以這種速度阻止你,然後直接與他們聯繫 - 他們顯然不希望你以這種方式使用他們的內容。

2

我猜維基百科有關於該主題的a decent reference。服從它們,並且爲了禮貌,多一點。例如,我可能會在每秒一次命中時最大化連接速度,或者我會冒着無意中的DoS攻擊風險。