2016-08-16 15 views
0

私はPythonのrobotparserをしばらく使用していますが、うまくいきます。私は非常に寛容探してrobots.txtファイルをウェブサイトに出会っ今朝:RobotParserがこの結果をブロックするのはなぜですか?

User-agent: * 
Disallow: /wp-admin/ 
Allow: /wp-admin/admin-ajax.php 

しかし、何らかの理由で、パーサはすべてのURLがブロックされていると考えています。

import robotparser 
rp = robotparser.RobotFileParser("http://newenglandreptileshop.com/robots.txt") 
rp.read() 
# Try any URL 
rp.can_fetch("*", "http://www.newenglandreptileshop.com") 

False 

拒否されない限り、すべてのパスのクロールは許可されます。私は別のrobots.txtパーサーを使用して私の前提を確認し、このサーバー上のほとんどのURLにアクセスできるはずであることに同意しました。そして、Googleにもインデックスが付けられています。

Pythonライブラリのバグのようです。どうしたの?

+1

私はRobotParserを知りません、ちょうどアイデア:あなたは同じホストを使用する場合、同じ問題?あなたは 'newenglandreptileshop.com'(' 'www''なし)、' 'www.newenglandreptileshop.com''(' 'www'')を使います。 – unor

+1

良い目。残念ながらそれは役に立たなかった。 –

答えて

0

https://www.w3.org/TR/html4/appendix/notes.html#h-B.4.1.1https://en.wikipedia.org/wiki/Robots_exclusion_standardにあるRobot Exclusion Standardによると、Allowレコードはありません。アクセスを許可するには、空のDisallowレコードを追加する必要があります。あなたがコントロールするドメイン上でrobots.txtをホストし、明示的な許可レコードを削除し、RobotParserがcan_fetchに対してTrueを返すかどうかを確認してください。

+1

ありがとうございます。しかし、それでも私には、私が/ wp-admin/pathについて気にしない理由で、許可されていないパスが許可されない理由が私には分かりません。 –

関連する問題