私はクローラーを作成しており、このために robots.txt パーサーを実装しています。標準の lib robotparserを使用しています。
robotparserが正しく解析していないようです。Google のrobots.txtを使用してクローラをデバッグしています。
(以下の例は IPython のものです)
In [1]: import robotparser
In [2]: x = robotparser.RobotFileParser()
In [3]: x.set_url("http://www.google.com/robots.txt")
In [4]: x.read()
In [5]: x.can_fetch("My_Crawler", "/catalogs") # This should return False, since it's on Disallow
Out[5]: False
In [6]: x.can_fetch("My_Crawler", "/catalogs/p?") # This should return True, since it's Allowed
Out[6]: False
In [7]: x.can_fetch("My_Crawler", "http://www.google.com/catalogs/p?")
Out[7]: False
「うまくいく」ように見えることもあれば、失敗するように見えることもあるので面白いです.FacebookとStackoverflowのrobots.txtでも同じことを試しました. robotpaser
これはモジュールのバグですか? それとも、ここで何か間違ったことをしていますか? もしそうなら、何?
このバグに何か関係があるのだろうかと思っていました