技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類(lèi)目錄

贊助商

最新文章

搜索

robots.txt 語(yǔ)法詳解:*、$、?等字符的含義及用法

作者:admin    時(shí)間:2017-6-17 11:19:19    瀏覽:

創(chuàng)建 robots.txt 文件很簡(jiǎn)單,您可以在任何文本編輯器中創(chuàng)建一個(gè) robots.txt 文件,它是ASCII編碼的文本文件,而不是HTML文件。本文將詳細(xì)介紹 robots.txt 的語(yǔ)法及用法,以及各種注意問(wèn)題。

 robots.txt

robots.txt

robots.txt 語(yǔ)法

  • User-Agent: 以下規(guī)則適用的機(jī)器人(例如“Googlebot”等)
  • Disallow: 您希望阻止機(jī)器人訪問(wèn)的頁(yè)面(根據(jù)需要,禁止多行)
  • Allow: 不需要阻止機(jī)器人訪問(wèn)的頁(yè)面
  • Noindex: 您希望搜索引擎阻止和不要索引的頁(yè)面(或者如果先前已建立索引,則將其解除索引)。支持Google,不支持雅虎和實(shí)時(shí)搜索(Live Search),其他搜索未知。
  • 每個(gè) User-Agent / Disallow 組應(yīng)該用空行分隔; 然而,組內(nèi)不應(yīng)存在空行(在User-agent行和最后一個(gè)Disallow之間)。
  • 井號(hào)(#)可用于 robots.txt 文件中的注釋?zhuān)渲性撔猩希:蟮乃袃?nèi)容都將被忽略??赡苡糜谡谢蚰┬小?/li>
  • 目錄和文件名區(qū)分大小寫(xiě):“my”,“My”和“MY”對(duì)于搜索引擎來(lái)說(shuō)都是不同的。

我們來(lái)看一個(gè)例子的robots.txt文件。下面的例子包括:

  • 對(duì)“Googlebot”機(jī)器人沒(méi)有任何不允許
  • 對(duì)“msnbot”機(jī)器人整站關(guān)閉
  • 所有機(jī)器人(Googlebot除外)不應(yīng)訪問(wèn) /tmp/ 目錄或名為 /logs 的目錄或文件,如注釋所述,例如tmp.htm,/logs或logs.php

User-agent: Googlebot
Disallow:

User-agent: msnbot
Disallow: /

# /tmp/ 目錄或名為 /logs 的目錄或文件阻止所有機(jī)器人
User-agent: *
Disallow: /tmp/
Disallow: /logs # 稱(chēng)為 logs 的目錄或文件

應(yīng)該在User-Agent行上列出什么?User-agent 是特定搜索引擎機(jī)器人的名稱(chēng)。您可以設(shè)置一個(gè)條目以應(yīng)用于特定的機(jī)器人(通過(guò)列出名稱(chēng)),或者您可以將其設(shè)置為適用于所有機(jī)器人(通過(guò)列出作為通配符的星號(hào))。適用于所有機(jī)器人的條目如下所示:

User-Agent: *

主要機(jī)器人包括:Baiduspider(baidu),360spider(360搜索),Sosospider(騰訊搜索),Sogou web spider(搜狗),Googlebot(Google),Slurp(Yahoo!)等,各大搜索引擎機(jī)器人可參考《百度蜘蛛最新UA及各大搜索引擎蜘蛛爬蟲(chóng)UA匯總》。

請(qǐng)注意,Googlebot的 User-agent 指定的一組指令將被Googlebot遵守; 但Googlebot不會(huì)遵守*(所有機(jī)器人)的 User-agent 的指令。

在Disallow行應(yīng)該列出什么?列出您要阻止的頁(yè)面。您可以列出特定的URL或模式。該條目應(yīng)以正斜杠(/)開(kāi)始。

例子:

  • 阻止整個(gè)網(wǎng)站: Disallow: /
  • 阻止一個(gè)目錄及其中的一切: Disallow: /private_directory/
  • 阻止頁(yè)面: Disallow: /private_file.html
  • 要阻止一個(gè)頁(yè)面和(或)一個(gè)名為private的目錄: Disallow: /private

如果您通過(guò)http和https提供內(nèi)容,則需要為每個(gè)協(xié)議單獨(dú)使用一個(gè)robots.txt文件。例如,為了允許機(jī)器人對(duì)所有http頁(yè)面進(jìn)行索引,但沒(méi)有https頁(yè)面,您可以按照http協(xié)議使用robots.txt文件:

User-agent: *
Disallow:

而對(duì)于https協(xié)議:

User-agent: *
Disallow: /

每當(dāng)他們?cè)L問(wèn)網(wǎng)站時(shí),都會(huì)檢查robots.txt文件。一旦將robots.txt文件的規(guī)則上傳到站點(diǎn)的根目錄并且機(jī)器人進(jìn)入站點(diǎn),則robots.txt文件中的規(guī)則將會(huì)生效。訪問(wèn)的頻率根據(jù)流行度,權(quán)限以及內(nèi)容更新頻率的不同,機(jī)器人蜘蛛網(wǎng)的頻率有所不同。有些網(wǎng)站每天可能會(huì)被抓取多次,而其他網(wǎng)站可能每周只能爬行幾次。

一些先進(jìn)的技術(shù)

主要的搜索引擎已經(jīng)開(kāi)始合作來(lái)推進(jìn)robots.txt文件的功能。如上所述,主要搜索引擎已經(jīng)采用了一些功能,而不一定是所有主要的引擎,可以更好地控制爬行。由于這些可能會(huì)受到限制,請(qǐng)務(wù)必謹(jǐn)慎使用。

抓取延遲:

某些網(wǎng)站可能會(huì)遇到大量流量,并希望將搜索引擎蜘蛛減慢,以允許更多的服務(wù)器資源來(lái)滿(mǎn)足常規(guī)流量的需求。抓取延遲是Yahoo,Live Search和Ask所認(rèn)可的特殊指令,指示抓取工具在抓取頁(yè)面之間等待的秒數(shù):

User-agent: msnbot
Crawl-delay: 5

◆ 模式匹配

模式匹配現(xiàn)在似乎可用于:Google,Yahoo和Live Search。模式匹配的價(jià)值相當(dāng)可觀。讓我們先看一下最基本的模式匹配,使用星號(hào)通配符。阻止訪問(wèn)以“private”開(kāi)頭的所有子目錄:

User-agent: Googlebot
Disallow: /private*/

您可以使用美元符號(hào)($)匹配字符串的末尾。例如,阻止以.asp結(jié)尾的URL:

User-agent: Googlebot
Disallow: /*.asp$

與在Perl和其他地方的正則表達(dá)式中發(fā)現(xiàn)的更先進(jìn)的模式匹配不同,問(wèn)號(hào)沒(méi)有特殊的權(quán)力。所以,阻止對(duì)包含問(wèn)號(hào)(?)的所有URL的訪問(wèn),只需使用問(wèn)號(hào)(不需要“轉(zhuǎn)義”或者使用反斜杠):

User-agent: *
Disallow: /*?*

阻止機(jī)器人抓取特定文件類(lèi)型的所有文件(例如.gif):

User-agent: *
Disallow: /*.gif$

這是一個(gè)比較復(fù)雜的例子。假設(shè)您的站點(diǎn)僅使用查詢(xún)字符串部分的URL(“?”),僅用于會(huì)話ID,并且您要排除包含動(dòng)態(tài)參數(shù)的所有URL,以確保機(jī)器人不會(huì)抓取重復(fù)的頁(yè)面。但是您可能希望包含以“?”結(jié)尾的任何URL。以下是如何實(shí)現(xiàn)的:

User-agent: Slurp
Disallow: /*? # 阻止包含 a 的URL
Allow: /*?$ # 允許所有以 a 結(jié)尾的URL

允許指令:

就像聽(tīng)起來(lái)一樣,它與Disallow指令相反,它提供了專(zhuān)門(mén)調(diào)用可能被抓取的目錄或頁(yè)面的能力。這在大部分或整個(gè)場(chǎng)地被禁止之后可能是有益的。

要允許Googlebot只進(jìn)入“google”目錄:

User-agent: Googlebot
Disallow: /
Allow: /google/

Noindex指令:

該指令提供了從搜索結(jié)果中消除無(wú)代號(hào)無(wú)標(biāo)題列表的優(yōu)點(diǎn),但僅限于Google。它的語(yǔ)法恰好反映了Disallow。用Matt Cutts的話說(shuō):

Google允許在robots.txt中使用NOINDEX指令,它將完全從Google刪除所有匹配的站點(diǎn)URL。(這種行為可能會(huì)根據(jù)這個(gè)政策討論而改變,當(dāng)然這也是為什么我們還沒(méi)有談?wù)撨^(guò)這個(gè)問(wèn)題。)

網(wǎng)站地圖:

XML網(wǎng)站地圖文件可以告訴搜索引擎您網(wǎng)站上的所有頁(yè)面,并且可選地提供有關(guān)這些頁(yè)面的信息,例如哪些是最重要的以及更改頻率。它充當(dāng)一個(gè)自動(dòng)發(fā)現(xiàn)機(jī)制,讓蜘蛛找到XML站點(diǎn)地圖文件。您可以通過(guò)在robots.txt文件中添加以下行來(lái)告訴Google和其他搜索引擎您的Sitemap:

Sitemap: sitemap_location

sitemap_location是Sitemap的完整網(wǎng)址。此指令與 User-agent 行無(wú)關(guān),因此放在任何地方并不重要,不過(guò)一般是放在最后。所有主要的搜索引擎都支持Auto-Discovery Sitemap協(xié)議,包括Google,Yahoo,Live Search和Ask。

雖然 Auto-Discovery 提供了一種通知搜索引擎關(guān)于sitemap.xml文件的方法,但也值得通過(guò)其每個(gè)網(wǎng)站管理員控制臺(tái)(Google網(wǎng)站管理員中心,雅虎網(wǎng)站瀏覽器,實(shí)時(shí)搜索網(wǎng)站管理員中心)直接驗(yàn)證和提交站點(diǎn)地圖到搜索引擎 。

標(biāo)簽: 爬蟲(chóng)  百度蜘蛛  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */