网站所有者使用/robots.txt文件向网络机器人提供有关其网站的说明;这称为机器人排除协议。该文件是一个简单的基于文本的访问控制系统,用于自动访问Web资源的计算机程序。此类程序称为蜘蛛,爬虫等。该文件指定用户代理标识符,后跟该代理可能无法访问的URL列表。
#robots.txt Sitemap: https://example.com/sitemap.xml User-agent: * Disallow: /admin/ Disallow: /downloads/ Disallow: /media/ Disallow: /static/
该文件通常放在Web服务器的顶级目录中。
Python的urllib.robotparser模块提供了RobotFileParser类。它回答有关特定用户代理是否可以在发布robots.txt文件的网站上获取URL的问题。
在RobotFileParser类中定义了以下方法
此方法设置指向robots.txt文件的URL。
此方法读取robots.txt URL,并将其提供给解析器。
此方法解析lines参数。
如果用户代理能够根据robots.txt中包含的规则提取网址,则此方法返回True。
此方法返回上次获取robots.txt文件的时间。
此方法设置上次获取robots.txt的时间。
此方法返回所涉及的用户代理的抓取延迟参数robots.txt的值。
此方法以命名元组RequestRate(requests,seconds)的形式返回Request-rate参数的内容。
from urllib import parse from urllib import robotparser AGENT_NAME = 'PyMOTW' URL_BASE = 'https://example.com/' parser = robotparser.RobotFileParser() parser.set_url(parse.urljoin(URL_BASE, 'robots.txt')) parser.read()