クローラーが robots.txt ファイルの User-Agent 行を読み取るとき、それを独自の User-Agent と正確に一致させようとしますか、それとも User-Agent の部分文字列として一致させようとしますか?
私が読んだすべてが、この質問に明確に答えているわけではありません。別の StackOverflow スレッドによると、完全に一致しています。
ただし、RFC ドラフトでは、部分文字列の一致であると信じています。たとえば、User-Agent: Google
「Googlebot」と「Googlebot-News」に一致します。RFC からの関連する引用を次に示します。
/robots.txt
ロボットは、部分文字列としてロボットの名前トークンを値に含む User-Agent 行を含む最初のレコードに従う必要があります。
さらに、 Googlebot のドキュメントの「ユーザー エージェントの優先順位」セクションでは、Google 画像のユーザー エージェント " Googlebot-Image/1.0
" がUser-Agent: googlebot
.
ここで明確にしていただければ幸いです。答えは私の質問よりも複雑になる可能性があります。たとえば、ノードの Eugene Kalinin の robots モジュールでは、29 行目で User-Agent を分割して「名前トークン」を取得し、それに対して照合することが言及されています。これが true の場合、Googlebot の User-Agent " Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
" は一致しませんUser-Agent: Googlebot
。