2016-05-17 17 views
19

Abbiamo utilizzato Scrapyd service per un po 'fino ad ora. Fornisce un buon wrapper su un progetto scrapy e i suoi spider che permettono di controllare gli spider tramite un'API HTTP:ScrapyRT vs Scrapyd

Scrapyd è un servizio per l'esecuzione di ragni Scrapy.

Consente di distribuire i progetti Scrapy e controllare i propri spider utilizzando un'API JSON HTTP.

Ma, di recente, ho notato un altro "fresco" pacchetto - ScrapyRT che, secondo la descrizione del progetto, suona molto promettente e simile a Scrapyd:

server HTTP che fornisce API per la programmazione Scrapy ragni e fare richieste con ragni.

Questo pacchetto è un'alternativa a Scrapyd? Se sì, qual è la differenza tra i due?

risposta

14

Non hanno molto in comune. Come hai già visto, devi distribuire i tuoi spider su scrapyd e pianificare le ricerche per indicizzazione. scrapyd è un servizio standalone in esecuzione su un server in cui è possibile distribuire ed eseguire ogni progetto/spider che ti piace.

Con ScrapyRT hai scelto uno dei tuoi progetti e tu cd in quella directory. Quindi esegui per es. scrapyrt e si avvia la scansione per gli spider su tale progetto tramite un'API REST semplice (e molto simile a scrapyd). Quindi ottieni gli elementi scansionati come parte della risposta JSON.

È un'idea molto carina e sembra veloce, snella e ben definita. Scrapyd d'altra parte è più maturo e più generico.

Qui sono alcune differenze fondamentali:

  • Scrapyd supporta più versioni di ragni e progetti multipli. Per quanto posso vedere se si desidera eseguire due diversi progetti (o versioni) con ScrapyRT, sarà necessario utilizzare diverse porte per ciascuno.
  • Scrapyd fornisce l'infrastruttura per mantenere gli elementi nel server mentre ScrapyRT li invia di nuovo sulla risposta che, per me, significa che dovrebbero essere nell'ordine di pochi MB (anziché potenzialmente GB). Allo stesso modo, il modo la registrazione è gestita in scrapyd è più generica rispetto a ScrapyRT.
  • Scrapyd (potenzialmente persistentemente) code i lavori e consente di controllare il numero di processi di Scrapy eseguiti in parallelo. ScrapyRT fa qualcosa di semplice che, per quanto posso dire, è di avviare una scansione per ogni richiesta non appena arriva la richiesta. Il codice di blocco in uno degli spider bloccherà anche gli altri.
  • ScrapyRT richiede un argomento url che, per quanto posso dire, esclude qualsiasi logica correlata a start_urls.

Direi che ScrapyRT e Scrapyd molto abilmente non si sovrappongono in questo momento. Certo che non sai mai cosa riserva il futuro.

+0

Ora vedo le differenze! Grazie! E grazie ancora per il fantastico libro, Dimitrios! – alecxe

+0

Molto benvenuto, grazie mille @alecxe! E grazie mille per l'eccellente domanda! :) – neverlastn

Problemi correlati