2012-10-08 5 views
9

Ho sviluppato alcuni ragni in scrapy & Voglio testare quelli sul cloud Heroku. Qualcuno ha qualche idea su come dispiegare un ragno Scrapy sul cloud Heroku?Come distribuire un ragno Scrapy sul cloud Heroku

+0

scrapy-heroku è stato scritto appositamente per questo scopo: http: //pypi.p ython.org/pypi/scrapy-heroku –

risposta

11

Sì, è abbastanza semplice distribuire ed eseguire il tuo ragno Scrapy su Heroku.

Ecco i passaggi con un vero e proprio progetto Scrapy come ad esempio:

  1. Clone il progetto (si noti che deve avere un file requirements.txt per Heroku a riconoscere come un progetto Python):

    git clone https://github.com/scrapinghub/testspiders.git

  2. Aggiungere cffi al file requirement.txt (ad es. Cffi == 1.1.0).

  3. Creare l'applicazione Heroku (questo aggiungerà un nuovo telecomando Heroku git):

    heroku create

  4. distribuire il progetto (questo richiederà un po 'la prima volta, quando la lumaca è costruito):

    git push heroku master

  5. Eseguire il ragno:

    heroku run scrapy crawl followall

Alcune note:

  • Heroku disco è effimera. Se si desidera archiviare i dati raschiati in una posizione persistente, è possibile utilizzare uno S3 feed export (aggiungendo) o utilizzare un addon (come MongoHQ o Redis To Go) e scrivere una pipeline per archiviare gli articoli lì
  • Sarebbe cool per eseguire un server Scrapyd su Heroku, ma non è attualmente possibile perché il modulo sqlite3 (che Scrapyd richiede) non funziona su Heroku
  • Se si desidera una soluzione più sofisticata per la distribuzione dei propri ragni di Scrapy, prendere in considerazione l'impostazione di Scrapyd server o utilizzando un servizio in hosting come
+0

Credo che "heroku run" avvii una Dyno One-Off che comporterà costi maggiori. È questa l'unica opzione? – elgehelge

+0

@Helge one off dynos non costa più al minuto dei normali dynos. –

+1

Puoi usare scrapy-heroku per eseguire un server Scrapyd su heroku! Ha funzionato benissimo per me. https://github.com/dmclain/scrapy-heroku – arctelix