玩蛇网提供最新Python编程技术信息以及Python资源下载!
您现在的位置: 玩蛇网首页 > Python模块库 > 正文内容

Python必知模块库

Python robotparser 网络蜘蛛robots.txt搜索访问控制

Python基础教程(第2版 修订版)
玩蛇网推荐图文教程:python黑客多线程扫描器

robotparser是一个专门用来解析网站的robots.txt文本文件的Python模块

robotparser支持Python2.1.3之后版本,建议大家安装Python2.7.5版本。

python robotparser网络蜘蛛

robotparser为robots.txt文件实现了一个解释器,可以用来读取robots文本的格式和内容,用函数方法检查给定的User-Agent是否可以访问相应的网站资源。如果要编写一个网络蜘蛛,这个模块可以限制一些蜘蛛抓取无用的或者重复的信息,避免蜘蛛掉入动态asp/php网页程序的死循环中。

简单的来说,robots.txt文件是每个网站都应该有的,指引蜘蛛抓取和禁止抓取的一个文本格式的文件,一些合法的蜘蛛或者叫爬虫,都是遵守这个规则的,可以控制他们的访问。

下面举一个玩蛇网robots.txt文件的例子:

地址是:http://www.iplaypython.com/robots.txt

User-agent: * #robot.txt 禁止爬虫

Disallow: /search
Disallow: /404.html
Disallow: /tags.php
Disallow: /tags/

以上代码会阻止,搜索引擎和其它一些蜘蛛程序抓取网站的某些目录和文件,另外百度有官方文档对于 robots.txt 文件有更为详细的介绍,
以及如何禁止搜索引擎收录的方法

我可以用robotparser模块的RobotFileParser.can_fetch()方法测试爬虫是否可以下载一个页面,下面代码演示:

>>> import robotparser #导入robots.txt解析模块
>>> import urlparser #导入url解析模块
>>>
>>> AGENT_NAME = ‘IPLAYPYTHON’
>>> URL_BASE = ‘http://www.iplaypython.com/’
>>> parser = robotparser.RobotFileParser()
>>> parser.set_url(urlparse.urljoin(URL_BASE, ‘robots.txt’))
>>> parser.read()
>>>
>>> PATHS = [
>>>                   ‘/’,
>>>                   ‘/admin/ ‘,
>>>                   ‘/tags/,
>>>                 ]
>>> for path in PATHS:
>>>     print '%6s : %s' % (parser.can_fetch(AGENT_NAME), path)
>>>url = urlparse.urljoin(URL_BASE, path)
>>>print '%6s : %s' % (parser.can_fetch(AGENT_NAME), url)
>>>print
>>>

URL参数可以是一个相对于网站根目录的相对路径,也可以是一个完整的URL绝对地址。

玩蛇网文章,转载请注明出处和来源网址:http://www.iplaypython.com/module/robotparser.html



微信公众号搜索"玩蛇网Python之家"加关注,每日最新的Python资讯、图文视频教程可以让你一手全掌握。强烈推荐关注!

微信扫描下图可直接关注

玩蛇网PythonQQ群,欢迎加入: ① 240764603 玩蛇网Python新手群
出炉日期:2016-03-28 15:46 玩蛇网 www.iplaypython.com

我要分享到:    
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

必知PYTHON教程Must Know PYTHON Tutorials