reppy

Software screenshot:
reppy
Podrobnosti Software:
Verze: 0.1.0
Datum uploadu: 11 May 15
Vývojka: Dan Lecocq
Licence: Volný
Popularita: 5

Rating: nan/5 (Total Votes: 0)

reppy začal z nedostatku podpory memoization v jiných robots.txt analyzátorů se vyskytly, a nedostatku podpory pro Crawl-zpoždění a Sitemap ve vestavěné v robotparser.
Odpovídající
Tento balík podporuje RFC 1996, stejně jako další běžně realizované funkce, jako je zástupný párování, kraul-zpoždění, a Sitemap. Existují různé přístupy k odpovídající Povolit a Zakázat. Jedním přístupem je použití nejdelší zápas. Další možností je použít nejkonkrétnější. Tento balíček se rozhodne následovat směrnice, která je nejdelší, předpoklad byl, že je to ten, který je nejvíce specifický - termín, který je trochu obtížné definovat v této souvislosti.

Použití

Nejjednodušší způsob, jak používat reppy je jen zeptat, jestli je / jsou povoleny url nebo url:
import reppy
# Toto implicitně načte example.com je robot.txt
reppy.allowed ("http://example.com/howdy ')
# => TRUE
# Teď, je to do mezipaměti založený na tom, kdy by měla skončit (přečtěte si více v `Expiration`)
reppy.allowed ("http://example.com/hello ')
# => TRUE
# Podporuje také dávkové dotazy
reppy.allowed (['http://example.com/allowed1', 'http://example.com/allowed2', 'http://example.com/disallowed'])
# => ['Http://example.com/allowed1', 'http://example.com/allowed2']
# šarží dotazy jsou dokonce podporovány naproti přes několik domén (ačkoli načte se neprovádí paralelně)
reppy.allowed (['http://a.com/allowed', 'http://b.com/allowed', 'http://b.com/disallowed'])
# => ['Http://a.com/allowed', 'http://b.com/allowed']
Je to docela snadné. Výchozí chování je, aby přinesla pro vás s urllib2
import reppy
# Make reppy objekt spojený s konkrétní doménou
r = reppy.fetch ('http://example.com/robots.txt')
ale můžete stejně snadno analyzovat řetězec, který vám vlasy.
import urllib2
data = urllib2.urlopen ('http://example.com/robots.txt ") .read ()
r = reppy.parse (data)
Expirace
Hlavní výhodou mít reppy načíst robots.txt pro vás je, že může automaticky znovu načíst po jeho data vypršela. To je zcela transparentní pro vás, takže nemusíte ani přemýšlet o tom - jen držet používat jako normální. Nebo, pokud dáváte přednost, můžete nastavit svůj vlastní čas-to-live, který má přednost:
import reppy
r = reppy.fetch ('http://example.com/robots.txt')
r.ttl
# => 10800 (Jak dlouho žít?)
r.expired ()
# => False (Už to skončilo?)
r.remaining ()
# => 10798 (jak dlouho, dokud nevyprší)
r = reppy.fetch ('http://example.com/robots.txt', TTL = 1)
# Počkejte 2 sekundy
r.expired ()
# => TRUE
Dotazy
Reppy se snaží sledovat hostitele, takže vy nemusíte. To se provádí automaticky při použití načíst, nebo můžete volitelně poskytnout url ji přitažené za vlasy ze s Parse. Pokud tak učiníte, umožňuje poskytnout jen cestu, když dotazování. V opačném případě musíte zadat celou adresu URL:
# To je proveditelné
r = reppy.fetch ('http://example.com/robots.txt')
r.allowed ("/")
r.allowed (["/ ahoj", "/ ahoj '])
# A tak je toto
data = urllib2.urlopen ('http://example.com/robots.txt ") .read ()
r = reppy.parse (údaje, url = 'http: //example.com/robots.txt ")
r.allowed (['/', '/ ahoj "," / ahoj'])
# Nicméně, nemáme implicitně vědět, které domény, to jsou z
reppy.allowed (['/', '/ ahoj "," / ahoj'])
Crawl-Delay a Sitemaps
Reppy také odhaluje non-RFC, ale široce používaný Crawl-Delay a Sitemaps atributy. Zpoždění plazit se je považována na jednotlivé uživatele agenta základě, ale sitemaps jsou považovány za globální. Pokud nejsou specifikovány, zpoždění procházení je None, a Sitemaps je prázdný seznam. Například, pokud je to robots.txt:
User-agent: *
Procházení-delay: 1
Mapa: http://example.com/sitemap.xml
Mapa: http://example.com/sitemap2.xml
Pak to jsou přístupné:
s souboru ("myrobots.txt", "r"), jako f:
& Nbsp; r = reppy.parse (f.read ())
r.sitemaps
# => ['Http://example.com/sitemap.xml', 'http://example.com/sitemap2.xml']
r.crawlDelay
# => 1
User-Agent sladěné
Můžete poskytnout agenta uživatele vašeho výběru pro načítání souboru robots.txt, a pak uživatel agenta řetězec přizpůsobíme se převezme na to, co se objeví před prvním /. Například, pokud zadáte uživatelské agenta jako "MyCrawler / 1,0", pak budeme používat "MyCrawler" jako řetězec, aby odpovídala proti User-agent. Srovnání jsou velká a malá písmena, a my nepodporujeme zástupné znaky v user-agent. Pokud toto výchozí nastavení nevyhovuje, můžete poskytnout alternativu:
# Toto se bude shodovat proti "myuseragent" standardně
r = reppy.fetch ('http://example.com/robots.txt', userAgent = 'MyUserAgent / 1,0')
# Toto se bude shodovat proti "someotheragent 'místo
r = reppy.fetch ('http://example.com/robots.txt', userAgent = 'MyUserAgent / 1,0', userAgentString = 'someotheragent')
Path-Matching
Cesta odpovídající podporuje * a $

Vlastnosti :

  • Memoization z přitažené za vlasy robots.txt
  • Vypršení převzata ze záhlaví Expires
  • dávkové dotazy
  • Konfigurovatelné uživatelský agent pro načítání souboru robots.txt
  • Automatické refetching Na bázi vypršení
  • Podpora Crawl-zpoždění
  • Podpora Sitemap
  • zástupných znaků odpovídající

Požadavky na :

  • Python

Ostatní software developer Dan Lecocq

aws-trade-in
aws-trade-in

20 Feb 15

asis
asis

20 Feb 15

Komentáře k reppy

Komentáře nebyl nalezen
Přidat komentář
Zapnout obrázky!