2010-06-04 49 views
2

我有以下robots.txtPython的robotparser忽视的Sitemaps

User-agent: * 
Disallow: /images/ 
Sitemap: http://www.example.com/sitemap.xml 

及以下robotparser

def init_robot_parser(URL): 
    robot_parser = robotparser.RobotFileParser() 
    robot_parser.set_url(urlparse.urljoin(URL, "robots.txt")) 
    robot_parser.read() 

    return robot_parser 

但是当我做了print robot_parser以上return robot_parser我得到的是

User-agent: * 
Disallow: /images/ 

为什么它忽略了Sitemap线,我错过了什么?

回答

3

Sitemap是标准的扩展,robotparser不支持它。您可以在the source中看到它只处理“user-agent”,“disallow”和“allow”。对于其目前的功能(告诉你是否允许特定的URL),理解Sitemap是不必要的。

+0

是的,但我需要看看是否有指定的站点地图来解析它们。我想我只需要通过urlopen打开机器人。谢谢。 – Ben 2010-06-04 22:29:04

1

您可以使用Repply(https://github.com/seomoz/reppy)来解析Robots.txt - 它处理站点地图。

请记住,在某些情况下,默认位置(/sitemaps.xml)上有一个站点地图,而站点所有者未在robots.txt中提及它(例如,在toucharcade.com上)

我还发现至少有一个站点的站点地图被压缩 - 这是robot.txt导致.gz文件。