reppy

软件截图:
reppy
软件详细信息:
版本: 0.1.0
上传日期: 11 May 15
开发: Dan Lecocq
许可: 免费
人气: 5

Rating: nan/5 (Total Votes: 0)

reppy起家的缺乏遇到其他的robots.txt分析器记忆化的支持,并在内置robotparser缺乏支持抓取延迟和地图。
匹配
该软件包支持1996年的RFC,以及其他常用实现的功能,如通配符匹配,抓取延迟和站点地图。有不同的方法来匹配允许和禁止。一种方法是使用最长匹配。另一种是使用最具体。这个包选择遵循指令,该指令是最长,假设是它的一个是最具体的 - 一个术语,是有点难以界定于该上下文。

用法

使用reppy最简单的方法就是只问如果URL或网址是/是允许的:
进口reppy
#这含蓄地获取example.com的robot.txt的
reppy.allowed('http://example.com/howdy“)
#=>真
#现在,它是基于当它应该过期(阅读更多`Expiration`)缓存的
reppy.allowed('http://example.com/hello“)
#=>真
#它也支持批量查询
reppy.allowed(['http://example.com/allowed1','http://example.com/allowed2','http://example.com/disallowed'])
#=> ['http://example.com/allowed1','http://example.com/allowed2']
#批量查询甚至支持翻过几个领域(虽然取并行未完成)
reppy.allowed(['http://a.com/allowed','http://b.com/allowed','http://b.com/disallowed'])
#=> ['http://a.com/allowed','http://b.com/allowed']
这是很容易使用。默认行为是与获取的urllib2为你
进口reppy
#请与特定领域相关的reppy对象
R = reppy.fetch('http://example.com/robots.txt“)
但你可以很容易地分析,你拿来一个字符串。
进口的urllib2
数据= urllib2.urlopen('http://example.com/robots.txt').read()
R = reppy.parse(数据)
过期
具有reppy获取的robots.txt为您的主要优点是,之后其数据已经过期它能自动重新读取。这是完全透明的你,所以你甚至不必去想它 - 只要继续使用它作为正​​常。或者,如果你愿意,你可以设置自己的时间到现场,其中优先:
进口reppy
R = reppy.fetch('http://example.com/robots.txt“)
r.ttl
#=> 10800(活多久?)
r.expired()
#=>假(它是否过期?)
r.remaining()
#=> 10798(多长时间,直到它过期)
R = reppy.fetch('http://example.com/robots.txt',TTL = 1)
#间隔2秒
r.expired()
#=>真
查询
Reppy试图保持主机的轨道,这样你就不必。这是当你使用取自动完成,或者你可以选择提供你与解析取它的URL。这样做可以让你查​​询时,只提供了路径。否则,您必须提供整个URL:
#这是可行的
R = reppy.fetch('http://example.com/robots.txt“)
r.allowed('/')
r.allowed(['/你好','/'你好'])
#所以这是
数据= urllib2.urlopen('http://example.com/robots.txt').read()
R = reppy.parse(数据,URL =“HTTP://example.com/robots.txt”)
r.allowed(['/','/你好','/'你好'])
#然而,我们不知道隐哪个域这些都是从
reppy.allowed(['/','/你好','/'你好'])
抓取延迟和网站地图
Reppy也暴露了非RFC,但广泛使用的抓取延迟和站点地图属性。爬网延迟被认为是基于每用户代理的基础上,但站点地图被认为是全球性的。如果它们没有被指定,爬网延迟是无,Sitemaps是一个空列表。例如,如果这是我的robots.txt:
用户代理:*
抓取延迟:1
网站地图:http://example.com/sitemap.xml
网站地图:http://example.com/sitemap2.xml
那么这些都可以访问:
用文件('myrobots.txt','R')为f:
  R = reppy.parse(f.read())
r.sitemaps
#=> ['http://example.com/sitemap.xml','http://example.com/sitemap2.xml']
r.crawlDelay
#=> 1
用户代理匹配
您可以向您选择的用户代理获取的robots.txt,然后我们相匹配的用户代理字符串默认为第一个/前会出现什么。例如,如果您提供的用户代理为“MyCrawler / 1.0',那么我们将使用'MyCrawler”作为字符串来匹配用户代理。比较是不区分大小写的,我们不支持在用户代理的通配符。如果此默认不适合你,你可以提供一种替代方案:
#这将匹配'myuseragent'默认
R = reppy.fetch('http://example.com/robots.txt',的userAgent ='MyUserAgent / 1.0')
#这将匹配'someotheragent“,而不是
R = reppy.fetch('http://example.com/robots.txt',的userAgent ='MyUserAgent / 1.0',userAgentString ='someotheragent')
路径匹配
路径匹配同时支持*和$

功能

  • 在牵强的robots.txt的记忆化
  • 从Expires头
  • 采取到期
  • 批量查询
  • 对于获取的robots.txt配置的用户代理
  • 在到期自动重新获取筑底
  • 支持抓取延迟
  • 支持的Sitemaps
  • 通配符匹配

要求

  • 在Python的

显影剂的其他软件 Dan Lecocq

aws-trade-in
aws-trade-in

20 Feb 15

asis
asis

20 Feb 15

意见 reppy

评论没有发现
添加评论
打开图片!