Python robotparser 网络蜘蛛robots.txt搜索访问控制
robotparser是一个专门用来解析网站的robots.txt文本文件的Python模块。
robotparser支持Python2.1.3之后版本,建议大家安装Python2.7.5版本。
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
- • 2019年3月最新消息: Python 3.4.10 现已推出
- • [上海]招Python量化系统开发工程师
- • 优集品网络科技有限公司招Python中/高级工程师
- • 爱因互动科技发展有限公司招募Python开发攻城狮
- • mozio招聘Python/Django工程师
- • Kavout金融科技公司招Python研发工程师
- • Python数组逆向输出,编程练习题实例四十
- • Python数组插入排序,编程练习题实例三十九
- • Python矩阵for循环应用,编程练习题实例三十八
- • Python操作Redis数据库方面的问题
- • 请python高手帮我看看这段python代码中函数setter的
- • Python什么方法可以快速将两个队列变成字典
PYTHON基础入门必备教程 Must Know PYTHON Tutorials
- • python 解释器
- • python idle
- • python dir函数
- • python 数据类型
- • python type函数
- • python 字符串
- • python 整型数字
- • python 列表
- • python 元组
- • python 字典
- • python 集合
- • python 变量
- • python print
- • python 函数
- • python 类定义
- • python import
- • python help
- • python open
- • python 异常处理
- • python 注释
- • python continue
- • python pass
- • python return
- • python global
- • python assert
- • python if语句
- • python break
- • python for循环
- • python while循环
- • python else/elif
- • lambda匿名函数
PYTHON进阶提高必备教程 Must Know PYTHON Modules
- • os 模块
- • sys 模块
- • re 正则表达式
- • time 日期时间
- • pickle 持久化
- • random 随机
- • csv 模块
- • logging 日志
- • socket网络通信
- • json模块
- • urlparse 解析URL
- • urllib 模块
- • urllib2 模块
- • robotparser 解析
- • Cookie 模块
- • smtplib 邮件
- • Base64 编码
- • xmlrpclib客户端
- • string 文本
- • Queue 线程安全
- • math数学计算
- • linecache缓存
- • threading多线程
- • sqlite3数据库
- • gzip压缩解压
最新内容 NEWS
- • Python linecache模块缓存读取大文件指定行
- • Python OS模块常用功能 中文图文详解
- • Python json解析模块loads/dumps中文encode教程
- • Python random模块sample、randint、shuffle、cho
- • Python urllib2模块post/get 下载网络资源
- • Python re正则表达式操作指南
- • Python time模块 函数格式 时间操作源码演示
- • Python Gzip压缩与解压模块
- • 第三方时间日期库 Python Arrow模块
- • Python Queue模块 多线程安全 先进先出的实
图文精华 RECOMMEND
-
Python linecache模块缓存读取大文件
-
Python OS模块常用功能 中文图文详
-
Python json解析模块loads/dumps中文e
-
Python random模块sample、randint、shu
-
Python re正则表达式操作指南
-
Python time模块 函数格式 时间操作
热点文章 HOT
- Python json解析模块loads/dumps中文encode教程
- Python re正则表达式操作指南
- Python threading多线程模块
- Python string模块 字符串函数方法操作教程
- Python robotparser 网络蜘蛛robots.txt搜索访问
- Python Cookie HTTP获取cookie并处理
- Python urllib模块 网络资源访问安装下载
- Python csv模块读写中文乱码等问题解决
- Python urllib2模块post/get 下载网络资源
- Python sys模块 argv path常用方法图文详解