reppy

Software skärmdump:
reppy
Mjukvaruinformation:
Version: 0.1.0
Ladda upp dagen: 11 May 15
Utvecklare: Dan Lecocq
Licens: Gratis
Popularitet: 5

Rating: nan/5 (Total Votes: 0)

reppy började av bristande memoization stöd i andra robots.txt tolkar som uppstått, och bristen på stöd för Crawl-fördröjning och Karta i den inbyggda robotparser.
matchande
Detta paket stöder 1996 RFC, samt ytterligare gemensamt genomförda funktioner, som jokertecken, crawl-fördröjning och sitemaps. Det finns olika metoder för matchning Tillåt och inte tillåta. Ett sätt är att använda den längsta matchen. Ett annat är att använda den mest specifika. Detta paket väljer att följa det direktiv som är längst, antagandet är att det är den som är mest specifika - en term som är lite svårt att definiera i detta sammanhang.

Användning

Det enklaste sättet att använda reppy är bara fråga om en url eller webbadresser är / är tillåtna:
import reppy
# Detta hämtar implicit example.com s robot.txt
reppy.allowed ('http://example.com/howdy')
# => Sant
# Nu är det cachade baserat på när den ska upphöra att gälla (läs mer i `Expiration`)
reppy.allowed ('http://example.com/hello')
# => Sant
# Det stöder också batch frågor
reppy.allowed (['http://example.com/allowed1', 'http://example.com/allowed2', 'http://example.com/disallowed'])
# => ['Http://example.com/allowed1', 'http://example.com/allowed2']
# Batch förfrågningar även stöd tvärs flera områden (även om hämtningar inte görs parallellt)
reppy.allowed (['http://a.com/allowed', 'http://b.com/allowed', 'http://b.com/disallowed'])
# => ['Http://a.com/allowed', 'http://b.com/allowed']
Det är ganska lätt att använda. Standardbeteendet är att hämta det åt dig med urllib2
import reppy
# Gör en reppy objekt som är associerat med en viss domän
r = reppy.fetch ('http://example.com/robots.txt')
men du kan lika gärna tolka en sträng som du hämtade.
import urllib2
uppgifter = urllib2.urlopen ('http://example.com/robots.txt') .Läs ()
r = reppy.parse (data)
Slut
Den huvudsakliga fördelen med att ha reppy hämta robots.txt för dig är att den automatiskt kan refetch efter dess data har löpt ut. Det är helt transparent för dig, så att du inte ens behöver tänka på det - bara fortsätta att använda det som vanligt. Eller, om du föredrar, kan du ställa in din egen tid till levande, som har företräde:
import reppy
r = reppy.fetch ('http://example.com/robots.txt')
r.ttl
# => 10800 (Hur lång tid att leva?)
r.expired ()
# => False (Har det gått ut?)
r.remaining ()
# => 10798 (Hur lång tid tills den upphör)
r = reppy.fetch ('http://example.com/robots.txt', TTL = 1)
# Vänta 2 sekunder
r.expired ()
# => Sant
frågor
Reppy försöker hålla koll på värden så att du inte behöver. Detta sker automatiskt när du använder hämta, eller så kan du eventuellt ge webbadressen som du hämtade den från med parse. Om du gör det kan du ge bara den väg vid frågor. Annars måste du ange hela URL:
# Det här är genomförbart
r = reppy.fetch ('http://example.com/robots.txt')
r.allowed ("/")
r.allowed (['/ hej "," / howdy'])
# Och så är detta
uppgifter = urllib2.urlopen ('http://example.com/robots.txt') .Läs ()
r = reppy.parse (data, url = 'http: //example.com/robots.txt)
r.allowed (['/', '/ hej "," / howdy'])
# Men vi vet inte underförstått vet vilken domän dessa är från
reppy.allowed (['/', '/ hej "," / howdy'])
Crawl-Delay och Site
Reppy utsätter också icke-RFC, men utbredda Crawl-Delay och Sitemaps attribut. Genomsökningen fördröjning bedöms på en per-user agent basis, men sitemaps anses global. Om de inte anges, är genomsökningen fördröjnings Ingen, och sitemaps är en tom lista. Till exempel, om detta är min robots.txt:
User-agent: *
Crawl-fördröjning: 1
Sitemap: http://example.com/sitemap.xml
Sitemap: http://example.com/sitemap2.xml
Då dessa är tillgängliga:
med fil ("myrobots.txt", "r") som f:
& Nbsp; r = reppy.parse (f.read ())
r.sitemaps
# => ['Http://example.com/sitemap.xml', 'http://example.com/sitemap2.xml']
r.crawlDelay
# => 1
User-Agent matchande
Du kan ge en användaragent som du väljer för att hämta robots.txt, och sedan user agent strängen matchar vi är som standard vad som visas före den första /. Till exempel, om du ger user agent som "MyCrawler / 1.0 ', då vi kommer att använda" MyCrawler "som strängen att matcha mot användaragenten. Jämförelser är skiftlägeskänsliga, och vi stöder inte jokertecken i User-Agent. Om denna standard inte passar dig, kan du ge ett alternativ:
# Det här kommer att matcha mot "myuseragent" som standard
r = reppy.fetch ('http://example.com/robots.txt', useragent = 'MyUserAgent / 1,0')
# Det här kommer att matcha mot "someotheragent" i stället
r = reppy.fetch ('http://example.com/robots.txt', useragent = 'MyUserAgent / 1,0', userAgentString = 'someotheragent')
Path-Matching
Path matchning stöder både * och $

Egenskaper :

  • Memoization av hämtade robots.txt
  • Slut tas från Utgår rubriken
  • Batch frågor
  • Konfigurerbar user agent för att hämta robots.txt
  • Automatisk refetching basera på utgången
  • Stöd för Crawl-fördröjning
  • Stöd för webbplatskartor
  • Wildcard matchande

Krav :

  • Python

Annan programvara för utvecklare Dan Lecocq

asis
asis

20 Feb 15

aws-trade-in
aws-trade-in

20 Feb 15

Kommentarer till reppy

Kommentarer hittades inte
Kommentar
Slå på bilder!