reppy

Screenshot der Software:
reppy
Softwarebeschreibung:
Version: 0.1.0
Upload-Datum: 11 May 15
Entwickler: Dan Lecocq
Lizenz: Frei
Popularität: 5

Rating: nan/5 (Total Votes: 0)

Reppy begann der fehlenden memoization Unterstützung in anderen robots.txt Parser gestoßen, und der Mangel an Unterstützung für Crawl-delay und Sitemap im eingebauten robotparser.
Passende
Dieses Paket unterstützt die RFC 1996, sowie weitere üblicherweise implementierten Features, wie Wildcard-Matching, crawl-delay und Sitemaps. Es gibt unterschiedliche Ansätze, um passende Erlauben und Verbieten. Ein Ansatz ist, um die längste Übereinstimmung zu verwenden. Ein weiterer Grund ist die spezifischste zu bedienen. Dieses Paket wählt, um die Richtlinie, die längste ist, die davon ausgegangen wird, dass es die eine, die am meisten spezifische ist folgen - ein Begriff, der ein wenig schwierig ist es, in diesem Zusammenhang zu definieren.

Usage

Der einfachste Weg, Reppy verwenden ist, einfach fragen, ob eine URL oder URLs ist / sind erlaubt:
Import Reppy
# Dies ruft implizit example.com ist robot.txt
reppy.allowed ('http://example.com/howdy')
# => True
# Nun, es zwischengespeichert basierend auf, wenn sie auslaufen sollte (lesen Sie mehr in `Expiration`)
reppy.allowed ('http://example.com/hello')
# => True
# Es unterstützt auch Batch-Abfragen
reppy.allowed (['http://example.com/allowed1', 'http://example.com/allowed2', 'http://example.com/disallowed'])
# => ['Http://example.com/allowed1', 'http://example.com/allowed2']
# Batch-Abfragen werden auch quer durch mehrere Domänen unterstützt (obwohl Abrufe werden nicht parallel durchgeführt)
reppy.allowed (['http://a.com/allowed', 'http://b.com/allowed', 'http://b.com/disallowed'])
# => ['Http://a.com/allowed', 'http://b.com/allowed']
Es ist ziemlich einfach zu bedienen. Das Standardverhalten ist, es für Sie zu holen mit urllib2
Import Reppy
# Machen Sie eine Reppy Objekt mit einer bestimmten Domäne zugeordnet
r = reppy.fetch ('http://example.com/robots.txt')
aber Sie können ebenso leicht analysieren eine Zeichenfolge, die Sie geholt.
Import urllib2
data = urllib2.urlopen ('http://example.com/robots.txt') .mehr ()
r = reppy.parse (Daten)
Expiration
Der Hauptvorteil der mit Reppy holen die robots.txt für Sie ist, dass es automatisch erneut abzurufen, nachdem seine Daten ist abgelaufen. Es ist völlig transparent für Sie, so dass Sie nicht einmal daran zu denken - nur halten, sie als normal. Oder, wenn Sie bevorzugen würden, können Sie Ihre eigenen Time-to-Live, die Vorrang festgelegt:
Import Reppy
r = reppy.fetch ('http://example.com/robots.txt')
r.ttl
# => 10800 (Wie lange leben?)
r.expired ()
# => False (Ist es abgelaufen?)
r.remaining ()
# => 10798 (Wie lange, bis es abläuft)
r = reppy.fetch ('http://example.com/robots.txt', TTL = 1)
# 2 Sekunden warten
r.expired ()
# => True
Suchen
Reppy versucht, den Überblick über den Host zu halten, so dass Sie nicht haben, um. Dies geschieht automatisch, wenn Sie zu holen, oder Sie können wahlweise die URL Sie es von mit parse geholt. Dies ermöglicht es Ihnen, nur den Weg zu liefern, wenn die Abfrage. Andernfalls müssen Sie die gesamte URL bieten:
# Dies ist machbar
r = reppy.fetch ('http://example.com/robots.txt')
r.allowed ("/")
r.allowed (['/ hallo', '/ howdy'])
# Und so ist dies
data = urllib2.urlopen ('http://example.com/robots.txt') .mehr ()
r = reppy.parse (Daten, url = 'http: //example.com/robots.txt')
r.allowed (['/', '/ hallo', '/ howdy'])
# Wir jedoch nicht wissen, welche implizit Domäne sind aus
reppy.allowed (['/', '/ hallo', '/ howdy'])
Crawl-Delay und Sitemaps
Reppy macht auch die nicht-RFC, aber weit verbreitete Crawl-Delay und Sitemaps Attribute. Der Crawl Verzögerung ist auf einem Agent Basis pro Benutzer betrachtet, aber die Sitemaps gelten global. Wenn sie nicht angegeben werden, wird der Crawl Verzögerung None, und Sitemaps ist eine leere Liste. Zum Beispiel, wenn dies meine robots.txt:
User-Agent: *
Crawl-delay: 1
Sitemap: http://example.com/sitemap.xml
Sitemap: http://example.com/sitemap2.xml
Dann sind zugänglich:
mit Datei ('myrobots.txt', 'r') als f:
& Nbsp; r = reppy.parse (f.read ())
r.sitemaps
# => ['Http://example.com/sitemap.xml', 'http://example.com/sitemap2.xml']
r.crawlDelay
# => 1
User-Agent Passende
Sie können einen Benutzer-Agenten Ihrer Wahl für das Abrufen robots.txt liefern, und dann wird der User-Agent-String passen wir auf, was vor der ersten / erscheint im Verzug. Zum Beispiel, wenn Ihnen der User-Agent als "MyCrawler / 1.0", dann werden wir 'MyCrawler' als String verwenden, um gegen User-agent entsprechen. Vergleiche sind Groß- und Kleinschreibung, und wir Wildcards in User-Agent nicht unterstützen. Wenn dieser Standard nicht zusagt, können Sie eine Alternative:
# Dies wird gegen "myuseragent 'standardmäßig überein
r = reppy.fetch ('http://example.com/robots.txt ", useragent =' MyUserAgent / 1.0")
# Dies wird gegen "someotheragent 'statt entsprechen
r = reppy.fetch ('http://example.com/robots.txt ", useragent =' MyUserAgent / 1.0 ', userAgentString =' someotheragent ')
Pfad-Matching
Pfad Matching unterstützt sowohl * und $

Eigenschaften :

  • Memoization der abgerufenen robots.txt
  • Expiration aus dem Expires-Header
  • übernommen
  • Batch-Abfragen
  • Konfigurierbare User-Agent zum Abrufen robots.txt
  • Automatische Erneutes Abrufen basierend auf Ablauf
  • Unterstützung für die Crawl-delay
  • Unterstützung für Sitemaps
  • Wildcard Matching

Anforderungen :

  • Python

Andere Software von Entwickler Dan Lecocq

aws-trade-in
aws-trade-in

20 Feb 15

asis
asis

20 Feb 15

Kommentare zu reppy

Kommentare nicht gefunden
Kommentar hinzufügen
Schalten Sie auf die Bilder!