前兩天剛知道用爬蟲抓取page有個協議的問題,尤其是對于open
source的爬蟲,剛看到一篇blog,寫的就是如此,難怪之前看google的robots也和另外一個U.S.的網站相同,感情是大家都商量好了,
可能這方面中國的一些站點這種意識要稍微淡一點。。。同時這也害得畢設還得另謀思路。。。
搜索引擎三巨頭打的不亦樂乎,但偶爾也合作一下。去年Google,雅虎,微軟就合作,共同遵守統一的Sitemaps標準。前兩天三巨頭又同時宣布,共
同遵守的
robots.txt文件標準。Google,雅虎,微軟各自在自己的官方博客上發了一篇帖子,公布三家都支持的robots.txt文件及Meta標簽
的標準,以及一些各自特有的標準。下面做一個總結。
三家都支持的robots文件記錄包括:
Disallow - 告訴蜘蛛不要抓取某些文件或目錄。如下面代碼將阻止蜘蛛抓取所有的網站文件:
User-agent: *
Disallow: /
Allow - 告訴蜘蛛應該抓取某些文件。Allow和Disallow配合使用,可以告訴蜘蛛某個目錄下,大部分都不抓取,只抓取一部分。如下面代碼將使蜘蛛不抓取ab目錄下其他文件,而只抓取其中cd下的文件:
User-agent: *
Disallow: /ab/
Allow: /ab
$通配符 - 匹配URL結尾的字符。如下面代碼將允許蜘蛛訪問以.htm為后綴的URL:
User-agent: *
Allow: .htm$
*通配符 - 告訴蜘蛛匹配任意一段字符。如下面一段代碼將禁止蜘蛛抓取所有htm文件:
User-agent: *
Disallow: /*.htm
Sitemaps位置 - 告訴蜘蛛你的網站地圖在哪里,格式為:Sitemap: <sitemap_XXXXXX>
三家都支持的Meta標簽包括:
NOINDEX - 告訴蜘蛛不要索引某個網頁。
NOFOLLOW - 告訴蜘蛛不要跟蹤網頁上的鏈接。
NOSNIPPET - 告訴蜘蛛不要在搜索結果中顯示說明文字。
NOARCHIVE - 告訴蜘蛛不要顯示快照。
NOODP - 告訴蜘蛛不要使用開放目錄中的標題和說明。
上面這些記錄或標簽,現在三家都共同支持。其中通配符好像以前雅虎微軟并不支持。百度現在也支持Disallow,Allow及兩種通配符。Meta標簽我沒有找到百度是否支持的官方說明。
只有Google支持的Meta標簽有:
UNAVAILABLE_AFTER - 告訴蜘蛛網頁什么時候過期。在這個日期之后,不應該再出現在搜索結果中。
NOIMAGEINDEX - 告訴蜘蛛不要索引頁面上的圖片。
NOTRANSLATE - 告訴蜘蛛不要翻譯頁面內容。
雅虎還支持Meta標簽:
Crawl-Delay - 允許蜘蛛延時抓取的頻率。
NOYDIR - 和NOODP標簽相似,但是指雅虎目錄,而不是開放目錄。
Robots-nocontent - 告訴蜘蛛被標注的部分html不是網頁內容的一部分,或者換個角度,告訴蜘蛛哪些部分是頁面的主要內容(想被檢索的內容)。
MSN還支持Meta標簽:Crawl-Delay
另外提醒大家注意的是,robots.txt文件可以不存在,返回404錯誤,意味著允許蜘蛛抓取所有內容。但抓取robots.txt文件時卻發生超時
之類的錯誤,可能導致搜索引擎不收錄網站,因為蜘蛛不知道robots.txt文件是否存在或者里面有什么內容,這與確認文件不存在是不一樣的。