reppy

Yazılım ekran görüntüsü:
reppy
Yazılım detaylar:
Versiyon: 0.1.0
Qayıt: 11 May 15
Geliştirici: Dan Lecocq
Lisans: Ücretsiz
Popülerlik: 5

Rating: nan/5 (Total Votes: 0)

reppy karşılaşılan diğer robots.txt ayrıştırıcıları içinde memoization desteğinin eksikliği ve yerleşik robotparser içinde Crawl-gecikme ve Site için destek eksikliği dışında başladı.
Eşleştirme
Bu paket 1996 RFC yanı sıra joker eşleştirme, tarama gecikmesi ve site haritaları gibi ek sık uygulanan özellikleri destekler. İzin ve izin verme eşleşen değişen yaklaşımlar vardır. Bir yaklaşım uzun maç kullanmaktır. Bir başka en özel kullanmaktır. Bu bağlamda tanımlamak biraz zor bir dönem - Bu paket uzun bir yönergesi, en özel olan biri olduğunu varlık varsayımını takip seçer.

Kullanım

reppy kullanmak için en kolay yolu, bir url veya URL'ler / izin verilen ise sadece sormak için:
ithalat reppy
# Bu örtülü example.com en robot.txt getirir
reppy.allowed ('http://example.com/howdy'),
# => True
# Şimdi, o sona (Expiration` `daha fazla oku) ne zaman dayalı önbelleğe alınmış oluyor
reppy.allowed ('http://example.com/hello'),
# => True
# Aynı zamanda toplu sorgularını destekler
reppy.allowed (['http://example.com/allowed1', 'http://example.com/allowed2', 'http://example.com/disallowed'])
# => ['Http://example.com/allowed1', 'http://example.com/allowed2']
(Fetches paralel olarak bitmiş değil olsa) # Toplu sorguları hatta birkaç etki genelinde desteklenen
reppy.allowed (['http://a.com/allowed', 'http://b.com/allowed', 'http://b.com/disallowed'])
# => ['Http://a.com/allowed', 'http://b.com/allowed']
Kullanımı oldukça kolay. Varsayılan davranış urllib2 ile sizin için almak için
ithalat reppy
# Belirli bir etki alanı ile ilişkili bir reppy nesne yapın
r = reppy.fetch ('http://example.com/robots.txt'),
ama sadece gibi kolayca getirilen bir dize ayrıştırmak.
ithalat urllib2
= urllib2.urlopen ('http://example.com/robots.txt') .read verileri ()
r = reppy.parse (veri)
Son Kullanma
reppy sizin için robots.txt getirme sahip ana avantajı veri sona erdikten sonra otomatik olarak refetch olmasıdır. Sadece normal olarak kullanmaya devam - hatta bunu düşünmek zorunda değilsiniz, bu yüzden sizin için tamamen şeffaf. Eğer tercih ederseniz Veya, kendi süresini canlı önceliklidir ayarlayabilirsiniz:
ithalat reppy
r = reppy.fetch ('http://example.com/robots.txt'),
r.ttl
# => 10800 (yaşamak için ne kadar süre?)
r.expired ()
# => False (zaman aşımına mı?)
r.remaining ()
# => 10.798 (ne kadar sona erinceye kadar)
r = reppy.fetch ('http://example.com/robots.txt', TTL = 1)
2. saniye bekleyin
r.expired ()
# => True
Sorgular
Reppy yapmak zorunda değilsiniz, böylece ev sahibi izlemek için çalışır. Eğer getirme kullandığınızda bu otomatik olarak yapılır veya isteğe bağlı olarak ayrıştırma ile onu getirilen url sağlayabilir. Aksi halde sorgularken sadece yolu sağlamamıza olanak tanır. Aksi takdirde, bütün url sağlamanız gerekir:
# Bu yapılabilir
r = reppy.fetch ('http://example.com/robots.txt'),
r.allowed ('/')
r.allowed (['/ merhaba', '/ howdy'])
# Ve böylece bu
= urllib2.urlopen ('http://example.com/robots.txt') .read verileri ()
r = reppy.parse (veri, URL = 'http: //example.com/robots.txt')
r.allowed (['/', '/ merhaba', '/ howdy'])
# Ancak, örtülü Bunların hangi etki bilmiyorum
reppy.allowed (['/', '/ merhaba', '/ howdy'])
Tarama-Delay ve Site Haritaları
Reppy da olmayan RFC ortaya, ama Tarama-Delay ve Site Haritaları niteliklerini yaygın olarak kullanılan. Tarama gecikmesi kullanıcı başına ajan olarak kabul edilir, ancak site haritaları, küresel olarak kabul edilir. Belirtilen değilse, tarama gecikme Yok ve site haritaları, boş bir listedir. Örneğin, bu benim robots.txt ise:
User-agent: *
Crawl-delay: 1
Site haritası: http://example.com/sitemap.xml
Site haritası: http://example.com/sitemap2.xml
Daha sonra bu erişilebilir:
f gibi dosya ('myrobots.txt', 'r') ile:
& Nbsp; r = reppy.parse (f.read ())
r.sitemaps
# => ['Http://example.com/sitemap.xml', 'http://example.com/sitemap2.xml']
r.crawlDelay
# => 1
Eşleştirme User-Agent
Sen robots.txt alma için sizin seçtiğiniz bir kullanıcı ajanı sağlayabilir, ve sonra biz maç kullanıcı aracısı dizesi ilk / 'önce görünen öndeğer edilir. Örneğin, 'MyCrawler / 1.0' gibi kullanıcı ajanı sağlarsanız, o zaman User-agent karşı maç dize olarak 'MyCrawler' kullanacağız. Karşılaştırmalar harf duyarsız ve biz User-Agent joker desteklemez. Bu varsayılan size uygun değilse, siz bir alternatif sağlayabilir:
# Bu, varsayılan olarak 'myuseragent' karşı maç olacak
r = reppy.fetch ('http://example.com/robots.txt' userAgent'taki = 'MyUserAgent / 1,0'),
# Bu yerine 'someotheragent' karşı maç olacak
r = reppy.fetch ('http://example.com/robots.txt' userAgent'taki = 'MyUserAgent / 1,0', = 'someotheragent' userAgentString)
Yol-Eşleştirme
Yol eşleştirme destekler hem * ve $

Özellikler :

  • getirilen robots.txt Memoization

  • Expires başlık alınan
  • Son Kullanma
  • Toplu sorguları
  • robots.txt alma için yapılandırılabilir kullanıcı aracısı
  • sona ermesi üzerine otomatik refetching dayandırarak
  • Tarama gecikme için destek
  • Site Haritaları için destek
  • joker eşleme

Gereksinimleri :

  • Python

Geliştirici Diğer yazılım Dan Lecocq

asis
asis

20 Feb 15

aws-trade-in
aws-trade-in

20 Feb 15

Yorumlar reppy

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!