外媒 VentureBeat 報道稱,谷歌希望將發展數十年的 robots.txt 解析器開源,以推動 REP 成為搜索引擎爬蟲的行業標準。機器人排除協議(REP)是荷蘭軟件工程師 Martijn Koster 于 1994 年提出的一個標準,幾乎已經成為了網站不希望被搜索引擎收錄的注釋的事實標準。
(截圖 via VentureBeat)
比如谷歌爬蟲(googlebot)就會在索引某個網站時掃描 robots.txt 文件,以確定其應該忽略掉哪些部分。如果根目錄中未包含該文件,那搜索引擎就會默認索引(index)全站內容。
值得一提的是,,該文件不僅可以用于提供直接的爬蟲索引,還可以被用來填充一些關鍵字,以實現“搜索引擎優化”(seo)。此外,并非所有抓取工具都會嚴格遵從 robots.txt 文件。
比如幾年前,互聯網檔案光就選擇了為其“時光機”(Wayback machine)歸檔工具提供支持,另外一些惡意抓取工具也會有意忽略 REP 。
不過需要指出的是,即便 REP 已經成為了默認的實施標準,但它實際上從未成為真正的互聯網標準,正如互聯網工程任務組(IETF - 一家非營利性開放標注組織)所定義的那樣。
為了推動這項轉變,谷歌正在積極參與行動。這家搜索巨頭表示,當前的 REP 可以被“解釋”,但并不總是涵蓋邊緣化的案例。
作為補充,谷歌提出了更全面的“未定義場景”。比如在執行一次“掃描已知內容”的任務時,爬蟲該如何處理“服務器出現不可訪問故障”的 robots.txt 文件、或者有拼寫錯誤的規則?
谷歌在一篇博客文章中寫到:“對于網站所有者來說,這是一項極具挑戰性的問題。因為模糊的事實標準,讓他們很難恰當地編寫規則”。
我們希望幫助網站所有者和開發者在互聯網上創造出令人驚嘆的體驗,而無需擔心如何對抓取工具加以限制。
于是谷歌與 REP 原作者 Martijn Koster、網站管理員、以及其它搜索引擎合作,向 IETF 提交了一份關于《如何在現代網絡上適用 REP》的提案。
該公司尚未公布該草案的全貌,但卻是提供了一些指引。比如任何基于 URI 的傳輸協議,都可以適用 robots.txt 。且其不再局限于 HTTP,亦可面向 FTP 或 CoAP 。
據悉,開發者必須至少解析 robots.txt 的前 500 KB 內容。定義文件的大小,可確保每個連接的打開時間不會太長,從而減輕不必要的服務器壓力。
另外,新的最大緩存時間被設置為 24 小時(或可用的緩存指令值),使得網站所有者能夠隨時靈活地更新他們的 robots.txt,且爬蟲不會因此而讓網站超載。
例如,在 HTTP 的情況下,可使用 Cache-Control 報頭來確定緩存時間。而當先前可訪問的 robots.txt 文件由于服務器故障而變得不可用時,則會在相當長的時間段內不再檢索該網站。
這里需要點明的是,抓取工具可以用不同的方式去解析 robots.txt 文件中的說明,這可能會導致網站所有者的混淆。
為此,谷歌特地推出了 C++ 庫,其支持 Googlebot 在 GitHub 上給出的解析和匹配系統,以供任何人訪問。
根據 GitHub 上的發布說明,Google 希望開發者構建自己的解析器,以更好地反映 Google 的 robots.txt 文件的解析和匹配。