python读取robot文件内容_Python robotparser 网络蜘蛛robots.txt搜索访问控制

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

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

2-16032Q54623J2.jpg

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

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

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

地址是://www.iplaypy.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 = ‘//www.iplaypy.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绝对地址。

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/module/robotparser.html

相关文章 Recommend

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值