2012-10-08 45 views
9

Opracowałem kilka pająków w scrapy & Chcę przetestować te na chmurze Heroku. Czy ktokolwiek ma pojęcie o tym, jak wdrożyć spider Scrapy w chmurze Heroku?Jak wdrożyć spider Scrapy na chmurze Heroku

+0

scrapy-heroku została napisana specjalnie w tym celu: http: //pypi.p ython.org/pypi/scrapy-heroku –

Odpowiedz

11

Tak, dość łatwo jest wdrożyć i uruchomić pająk Scrapy na Heroku.

Oto kroki wykorzystujące rzeczywisty projekt Scrapy jako przykład:

  1. Clone projekt (należy pamiętać, że musi on mieć plik requirements.txt dla Heroku rozpoznać go jako projekt Python):

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

  2. Dodaj cffi do pliku requirements.txt (np. Cffi == 1.1.0).

  3. Tworzenie aplikacji Heroku (Spowoduje to dodanie nowego Heroku git remote):

    heroku create

  4. Wdrażanie projektu (to zajmie chwilę po raz pierwszy, gdy ślimak jest zbudowany):

    git push heroku master

  5. Uruchom swój pajęczy:

    heroku run scrapy crawl followall

Kilka uwag:

  • dysk Heroku jest ulotne. Jeśli chcesz przechowywać zeskrobane dane w trwałym miejscu, możesz użyć S3 feed export (przez dołączenie -o s3://mybucket/items.jl) lub użyć dodatku (takiego jak MongoHQ lub Redis To Go) i napisać potok do przechowywania tam swoich przedmiotów
  • Byłby to fajnie uruchomić serwer Scrapyd na Heroku, ale nie jest to obecnie możliwe, ponieważ moduł sqlite3 (który wymaga Scrapyd) nie działa na Heroku
  • Jeśli potrzebujesz bardziej wyrafinowanego rozwiązania do rozmieszczania pająków Scrapy, zastanów się nad samodzielnym skonfigurowaniem Scrapyd server lub usługa hostowana, taka jak Scrapy Cloud
+0

Wierzę, że "heroku run" uruchamia jednorazowe urządzenie Dyno, które spowoduje dodatkowe koszty. Czy to jedyna opcja? – elgehelge

+0

@Hellge one off dynos nie kosztuje więcej za minutę niż standardowe dynos. –

+1

Możesz użyć scrapy-heroku, aby uruchomić serwer Scrapyd na heroku! Pracuje dla mnie świetnie. https://github.com/dmclain/scrapy-heroku – arctelix