2014-06-19 108 views
1

如果我指定wget的自定義用戶代理,如「MyBot(信息@ mybot ...)」將wget的robots.txt中檢查這個爲好,如果機器人被禁止,或者只是一般的機器人排除?wget檢查robots.txt是否允許指定的用戶代理?

+0

見'wget'文檔中標題爲**機器人排除**。 – Barmar

+0

Thx這就是爲什麼我在這裏:)該部分沒有說,wget是否會驗證我的自定義useragent是允許的。只是一般的robots.txt排除http://www.gnu.org/software/wget/manual/wget.html – giorgio79

+0

對不起,我誤解了你的問題,而且我也注意到了同樣的事情。在'robots.txt'中找不到它的內容 – Barmar

回答

1

不,如果你指定自己的用戶代理,Wget的沒有在robots.txt文件進行檢查。事實上,我相信在嘗試回答您的問題時,我發現了Wget中的另一個錯誤。即使您指定了自定義用戶代理,Wget在解析robots.txt時似乎仍遵循自己的用戶代理規則。我爲此創建了一個測試用例,並將在Wget ASAP中修復實現。

現在的權威回答你原來的問題。答案是否定的,因爲在Wget的來源,您將看到以下評論認爲解析robots文件的規則的功能前面:

/*解析長度爲長度的SOURCE開始的文本RES規格。 返回一個specs對象,準備提交給res_match_path。

解析本身是微不足道的,但創建一個正確的SPECS對象 麻煩似乎比,因爲RES是出奇的拜占庭式的,如果你 試圖正確地執行它。

A「記錄」是一個或多個User-Agent' lines followed by one or more允許「或Disallow' lines. Record is accepted by Wget if one of the用戶代理」線的方塊是‘wget的’,或者如果用戶代理線 是‘*’。

所有的線都被讀取後,我們檢查是否指定一個確切的 (「wget的」)用戶代理領域。如果是這樣,我們刪除所有 線下閱讀「的User-Agent:*」塊,因爲我們有自己的 Wget的特定塊。這使得管理員說:

的User-Agent:* Disallow:/資料

的User-Agent:谷歌的User-Agent:wget的不允許:/ cgi-bin目錄

這意味着,與wget和Google,/ cgi-bin是不允許的,而 對於所有其他搜尋器,一切都是不允許的。 res_parse是 實現,以便記錄的順序無關緊要。在上面的案例 中,「User-Agent:*」可能會在另一個之後出現。 */

+0

這是一個完美的答案。比任何人都可以要求的更多。謝謝 – giorgio79

相關問題