2013-06-19 7 views
13

Sto pianificando di utilizzare il webcrawling in un'applicazione a cui sto lavorando attualmente. Ho fatto delle ricerche su Nutch e ho fatto alcuni test preliminari per usarlo. Ma poi mi sono imbattuto in scrapy. Ma quando ho fatto alcune ricerche preliminari e ho esaminato la documentazione su scrapy, ho scoperto che può acquisire solo i dati strutturati (devi fornire il nome div da cui vuoi acquisire i dati). Il backend dell'applicazione che sto sviluppando si basa su Python e capisco che scrapy sia basato su Python e alcuni hanno suggerito che scrapy sia migliore di Nutch.Scrapy Vs Nutch

Il mio requisito è quello di acquisire i dati da più di 1000 pagine Web diverse e di eseguire ricerche per parole chiave pertinenti in tali informazioni. È in qualche modo che scrapy possa soddisfare lo stesso requisito.

1) Se sì, puoi fare un esempio su come può essere fatto?

2) O Nutch + Solr è più adatto per la mia esigenza

+3

Il nome div non è un requisito per Scrapy, è possibile catturare tutto ciò che si desidera. –

risposta

17

Scrapy avrebbe funzionato perfettamente nel vostro caso.

Non è necessario dare div nomi - si può ottenere tutto quello che vuoi:

Scrapy viene fornito con un proprio meccanismo per l'estrazione dei dati. Sono chiamati selettori XPath (o semplicemente "selettori", in breve) perché " " selezionano "determinate parti del documento HTML specificate dalle espressioni XPath .

Inoltre, è possibile utilizzare BeautifulSoup e lxml per estrarre i dati dal contenuto della pagina.

Inoltre, scrapy è basato su twistato ed è completamente asincrono e veloce.

Qui ci sono un sacco di esempi di ragni scrapy in SO: basta guardare le domande del tag . Se hai una domanda più specifica - basta chiedere.

Spero che questo aiuti.

+0

Grazie alecx..providerò quindi scrapy. Credo di dover fare una ricerca migliore sullo stesso. – Vidhu

+7

C'era un articolo di recente sull'uso di [Scrapy con Solr] (http://searchhub.org/2013/06/13/indexing-web-sites-in-solr-with-python/). –

-7

Scrapy è gonfio e un eccessivo per molte attività. Sorprendente lento. Il suo codice è fragile, ci sono cambiamenti costanti che interrompono la retrocompatibilità. Se usi Scrapy, passerai più tempo a cercare di capire gli interni di Scrapy che fare le cose.

+6

Ciao Franco, non sono d'accordo con l'affermazione che la scrapy sia lenta. Sono stato in grado di eseguire la scansione di circa 25.000 pagine da siti diversi in circa 2,5 ore. Sono felice con quella velocità di scansione. Scrapy potrebbe sembrare un po 'difficile all'inizio, ma quando inizi ad usarlo sempre di più ... ti piacerebbe ... – Vidhu

+2

Ho sviluppato alcuni crawler con scrapy e ho fatto alcuni benchmark contro i crawler golang, PHP, C e Java che stavano facendo lo stesso compito. La soluzione Python era quasi vicina a C usando lxml plus Scrapy, gli altri erano più lenti. L'unica cosa da migliorare a mio parere sono le integrazioni del middleware in alcuni casi. Ho integrato i modelli Django anche Tor senza alcun problema. –

+1

Non sono d'accordo con la parte "cambiamento costante" e non sono d'accordo sul fatto che sia difficile da imparare. Contrariamente a ciò, direi che scrapy è molto facile da usare. Anche la documentazione è molto nitida. –