reppy

Screenshot Software:
reppy
Detalii soft:
Versiune: 0.1.0
Incarca data: 11 May 15
Producător: Dan Lecocq
Licenţă: Gratuit
Popularitate: 5

Rating: nan/5 (Total Votes: 0)

reppy început dintr-o lipsa de sprijin memoization în alte interpretoare robots.txt întâlnite, precum și lipsa de sprijin pentru Crawl-întârziere și Harta site-ului în robotparser built-in.
de potrivire
Acest pachet suporta 1996 RFC, precum și de servicii suplimentare de obicei implementate-, cum ar fi potrivire wildcard, crawl-întârziere, și sitemap-uri. Există diferite abordări pentru potrivire Permiteți și permiteți. O abordare este de a utiliza cel mai lung meci. O alta este de a utiliza cele mai specifice. Acest pachet alege să urmeze directivei, care este cel mai lung, ipoteza fiind că este cel care este cel mai specific - un termen care este un pic greu de definit în acest context.

Utilizare

Cel mai simplu mod de a utiliza reppy este de a cere doar dacă un URL sau adrese URL este / sunt permise:
reppy import
# Aceasta preia implicit robot.txt example.com lui
reppy.allowed ("http://example.com/howdy ')
# => Adevărata
# Acum, este în cache bazată pe când ar trebui să expire (citeste mai mult în `Expiration`)
reppy.allowed ("http://example.com/hello ')
# => Adevărata
# Aceasta susține, de asemenea, cereri de lot
reppy.allowed (['http://example.com/allowed1', 'http://example.com/allowed2', 'http://example.com/disallowed'])
# => ['Http://example.com/allowed1', 'http://example.com/allowed2']
# interogări lot sunt chiar susținute disponibile pe mai multe domenii (deși de aducere nu se fac în paralel)
reppy.allowed (['http://a.com/allowed', 'http://b.com/allowed', 'http://b.com/disallowed'])
# => ['Http://a.com/allowed', 'http://b.com/allowed']
Este destul de ușor de utilizat. Comportamentul implicit este de a aduce pentru tine, cu urllib2
reppy import
# Face un obiect reppy asociat cu un anumit domeniu
r = reppy.fetch ('http://example.com/robots.txt')
dar tu poți analiza fel de ușor un șir care preluat.
urllib2 import
date = urllib2.urlopen ('http://example.com/robots.txt ") se citi ()
r = reppy.parse (date)
expirarii
Principalul avantaj de a avea reppy aduc robots.txt pentru tine este că se poate refetch automat după date sa a expirat. Este complet transparent pentru tine, astfel încât să nu au nici măcar să mă gândesc - doar păstrați folosind-o ca de obicei. Sau, dacă preferați, puteți seta propriul timp pentru a-live, care are prioritate:
reppy import
r = reppy.fetch ('http://example.com/robots.txt')
r.ttl
# => 10800 (Cât timp să trăiască?)
r.expired ()
# => False (A se expirat?)
r.remaining ()
# => 10798 (Cât durează până când expiră)
r = reppy.fetch ('http://example.com/robots.txt', TTL = 1)
# Așteptați două secunde
r.expired ()
# => Adevărata
Întrebări
Reppy încearcă să țină evidența gazdă, astfel încât să nu trebuie să. Acest lucru se face în mod automat atunci când utilizați descărca, sau vă poate oferi opțional url ai adus la cu parse. Procedând astfel, vă permite să ofere doar calea când interogarea. În caz contrar, trebuie să furnizați tot url:
# Acest lucru este greu de realizat
r = reppy.fetch ('http://example.com/robots.txt')
r.allowed ("/")
r.allowed (['/ salut "," / Salutare'])
# Și așa este această
date = urllib2.urlopen ('http://example.com/robots.txt ") se citi ()
r = reppy.parse (date, url = 'http: //example.com/robots.txt ")
r.allowed (['/', '/ salut "," / Salutare'])
# Cu toate acestea, nu știm implicit care domeniu de acestea sunt de la
reppy.allowed (['/', '/ salut "," / Salutare'])
Crawl-Delay și Sitemaps
Reppy expune, de asemenea, non-RFC, dar utilizate pe scară largă-Crawl-Delay și Sitemaps atribute. Întârzierea crawl este considerat pe o bază per-utilizator agent, dar Sitemap-urile sunt considerate la nivel mondial. În cazul în care nu sunt specificate, întârzierea crawl este nici unul, iar sitemap este o listă goală. De exemplu, dacă acest lucru este robots.txt mea:
User-agent: *
Crawl-delay: 1
Sitemap: http://example.com/sitemap.xml
Sitemap: http://example.com/sitemap2.xml
Atunci acestea sunt accesibile:
cu file ('myrobots.txt "," r "), ca f:
& Nbsp; r = reppy.parse (f.read ())
r.sitemaps
# => ['Http://example.com/sitemap.xml', 'http://example.com/sitemap2.xml']
r.crawlDelay
# => 1
User-Agent de potrivire
Puteți oferi un agent utilizator de alegerea dvs. pentru preluarea robots.txt, iar apoi șirul de agent de utilizator am potrivi este implicit la ceea ce apare înainte de prima /. De exemplu, dacă vă oferi agentul utilizator ca "MyCrawler / 1.0", atunci vom folosi "MyCrawler" ca șir pentru a se potrivi împotriva User-agent. Comparațiile sunt case-insensitive, iar noi nu acceptă metacaractere în User-Agent. Dacă acest lucru implicit nu va convine, vă poate oferi o alternativă:
# Acest lucru se va potrivi împotriva "myuseragent" în mod implicit
r = reppy.fetch ('http://example.com/robots.txt', UserAgent = 'MyUserAgent / 1.0 ")
# Acest lucru se va potrivi împotriva "someotheragent" în loc
r = reppy.fetch ('http://example.com/robots.txt', UserAgent = 'MyUserAgent / 1.0', userAgentString = 'someotheragent')
Calea-Matching
Potrivire cale suportă atât * și $

Caracteristici :

  • Memoization de robots.txt preluate
  • expirarii luate din Expira antet
  • interogări lot
  • user agent configurabile pentru preluarea robots.txt
  • bazându automată refetching pe expirarea
  • Suport pentru Crawl-întârziere
  • Suport pentru Sitemaps
  • de potrivire Wildcard

Cerințe :

  • Python

Alte software-uri de dezvoltator Dan Lecocq

aws-trade-in
aws-trade-in

20 Feb 15

asis
asis

20 Feb 15

Comentarii la reppy

Comentariile nu a fost găsit
Adauga comentarii
Porniţi pe imagini!