reppy

Software screenshot:
reppy
Dettagli del software:
Versione: 0.1.0
Data di caricamento: 11 May 15
Sviluppatore: Dan Lecocq
Licenza: Libero
Popolarità: 5

Rating: nan/5 (Total Votes: 0)

Reppy iniziato di una mancanza di sostegno Memoizzazione in altre parser robots.txt incontrati, e la mancanza di supporto per Crawl-delay e Sitemap nel robotparser incorporato.
corrispondenza
Questo pacchetto supporta 1996 RFC, nonché ulteriori funzioni comunemente implementate, come wildcard, crawl-delay, e sitemaps. Ci sono diversi approcci nei confronti di corrispondenza permettere e impedire. Un approccio è quello di utilizzare la corrispondenza più lunga. Un altro è di utilizzare il più specifico. Questo pacchetto sceglie di seguire la direttiva che è il più lungo, partendo dal presupposto che è quello che è più specifica - un termine che è un po 'difficile da definire in questo contesto.

Uso

Il modo più semplice per utilizzare Reppy è quello di chiedere solo se è / sono consentiti un URL o URL:
importazione Reppy
# Questo recupera implicitamente robot.txt del example.com
reppy.allowed ('http://example.com/howdy')
# => True
# Ora, è nella cache basata su quando la sua scadenza (per saperne di più in `Expiration`)
reppy.allowed ('http://example.com/hello')
# => True
# Supporta anche le query in batch
reppy.allowed (['http://example.com/allowed1', 'http://example.com/allowed2', 'http://example.com/disallowed'])
# => ['Http://example.com/allowed1', 'http://example.com/allowed2']
# query batch sono anche supportate attraversato diversi domini (se recupera non sono fatte in parallelo)
reppy.allowed (['http://a.com/allowed', 'http://b.com/allowed', 'http://b.com/disallowed'])
# => ['Http://a.com/allowed', 'http://b.com/allowed']
E 'abbastanza facile da usare. Il comportamento predefinito è quello di prenderlo per voi con urllib2
importazione Reppy
# Fate un oggetto Reppy associato a un particolare dominio
r = reppy.fetch ('http://example.com/robots.txt')
ma si può altrettanto facilmente analizzare una stringa che inverosimile.
importazione urllib2
data = urllib2.urlopen ('http://example.com/robots.txt') .read ()
r = reppy.parse (dati)
scadenza
Il vantaggio principale di avere Reppy prelevare lo robots.txt per voi è che può Rigenera automaticamente dopo la sua dati è scaduto. E 'completamente trasparente per voi, quindi non hanno nemmeno bisogno di pensarci - solo continuare a utilizzarlo come normale. O, se si preferisce, è possibile impostare il proprio time-to-live, che ha la precedenza:
importazione Reppy
r = reppy.fetch ('http://example.com/robots.txt')
r.ttl
# => 10800 (Quanto tempo per vivere?)
r.expired ()
# => False (Ti è scaduto?)
r.remaining ()
# => 10798 (Quanto tempo fino alla scadenza)
r = reppy.fetch ('http://example.com/robots.txt', TTL = 1)
# Attendere 2 secondi
r.expired ()
# => True
Query
Reppy cerca di tenere traccia del host in modo che non si deve. Ciò avviene automaticamente quando si utilizza recuperare, oppure è possibile opzionalmente fornire l'URL recuperati da con parse. In questo modo consente di fornire solo il percorso in cui l'esecuzione di query. In caso contrario, è necessario fornire l'intero url:
# Questo è fattibile
r = reppy.fetch ('http://example.com/robots.txt')
r.allowed ('/')
r.allowed (['/ ciao', '/ Howdy'])
# E così è questo
data = urllib2.urlopen ('http://example.com/robots.txt') .read ()
r = reppy.parse (dati, url = 'http: //example.com/robots.txt')
r.allowed (['/', '/ ciao', '/ Howdy'])
# Tuttavia, noi non sappiamo che implicitamente dominio sono da
reppy.allowed (['/', '/ ciao', '/ Howdy'])
Crawl-Delay e Sitemaps
Reppy espone anche il non-RFC, ma ampiamente utilizzato Crawl-Delay e Sitemaps attributi. Il ritardo di scansione è considerato su base per-user agent, ma le sitemap sono considerati globale. Se non vengono specificati, il ritardo di scansione è None, e Sitemaps è una lista vuota. Ad esempio, se questo è il mio robots.txt:
User-agent: *
Crawl-delay: 1
Sitemap: http://example.com/sitemap.xml
Sitemap: http://example.com/sitemap2.xml
Poi questi sono accessibili:
con il file ('myrobots.txt', 'r') come f:
& Nbsp; r = reppy.parse (f.read ())
r.sitemaps
# => ['Http://example.com/sitemap.xml', 'http://example.com/sitemap2.xml']
r.crawlDelay
# => 1
User-Agent corrispondenza
È possibile fornire un user agent di tua scelta per il recupero robots.txt, e quindi la stringa user agent abbiniamo è in default a ciò che appare prima del primo /. Ad esempio, se si fornisce il programma utente come 'MyCrawler / 1.0', allora useremo 'MyCrawler' come la stringa con cui confrontarla User-agent. I confronti sono case-insensitive, e noi non supportano i caratteri jolly in User-Agent. Se questo difetto non fa per voi, è possibile fornire una alternativa:
# Questo corrisponderà contro 'myuseragent' di default
r = reppy.fetch ('http://example.com/robots.txt', userAgent = 'MyUserAgent / 1.0')
# Questo corrisponderà contro 'someotheragent' invece
r = reppy.fetch ('http://example.com/robots.txt', userAgent = 'MyUserAgent / 1.0', userAgentString 'someotheragent' =)
Percorso-Corrispondenza
Percorso corrispondenza supporta sia * e $

Caratteristiche

  • Memoizzazione di robots.txt inverosimile
  • Scadenza tratto dal Expires
  • query batch
  • agente utente configurabile per il recupero robots.txt
  • basandosi automatica refetching alla scadenza
  • Il supporto per Crawl-delay
  • Il supporto per Sitemaps
  • corrispondenza jolly

Requisiti

  • Python

Altri software di sviluppo Dan Lecocq

aws-trade-in
aws-trade-in

20 Feb 15

asis
asis

20 Feb 15

Commenti a reppy

I commenti non trovato
Aggiungi commento
Accendere le immagini!