reppy

軟件截圖:
reppy
軟件詳細信息:
版本: 0.1.0
上傳日期: 11 May 15
開發: Dan Lecocq
許可: 免費
人氣: 50

Rating: 4.0/5 (Total Votes: 1)

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

asis
asis

20 Feb 15

aws-trade-in
aws-trade-in

20 Feb 15

意見 reppy

評論沒有發現
添加評論
打開圖片!