2012-10-08 36 views

Trả lời

11

Có, nó khá đơn giản để triển khai và chạy spidery của bạn trên Heroku.

Dưới đây là các bước sử dụng một dự án Scrapy thực như ví dụ:

  1. Clone dự án (lưu ý rằng nó phải có một tập tin requirements.txt cho Heroku để nhận ra đó là một dự án Python):

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

  2. Thêm cffi vào tệp requirements.txt (ví dụ: cffi == 1.1.0).

  3. Tạo ứng dụng Heroku (điều này sẽ thêm một từ xa Heroku git mới):

    heroku create

  4. Triển khai dự án (điều này sẽ mất một thời gian lần đầu tiên, khi sên được xây dựng):

    git push heroku master

  5. Chạy nhện của bạn:

    heroku run scrapy crawl followall

Một số lưu ý:

  • Heroku đĩa là phù du. Nếu bạn muốn lưu trữ dữ liệu đã được cạo ở một nơi liên tục, bạn có thể sử dụng một số S3 feed export (bằng cách thêm -o s3://mybucket/items.jl) hoặc sử dụng một phụ trợ (như MongoHQ hoặc Redis To Go) và viết một đường ống để lưu trữ các mặt hàng của bạn tại đó
  • Nó sẽ là mát mẻ để chạy máy chủ Scrapyd trên Heroku, nhưng hiện tại không thể thực hiện được vì mô-đun sqlite3 (mà Scrapyd yêu cầu) không hoạt động trên Heroku
  • Nếu bạn muốn có một giải pháp phức tạp hơn để triển khai trình thu thập thông tin của bạn, hãy xem xét thiết lập Scrapyd server hoặc sử dụng dịch vụ được lưu trữ như Scrapy Cloud
+0

Tôi tin rằng 'heroku run' khởi động One-Off Dyno, điều này sẽ dẫn đến việc tốn nhiều tiền hơn. Đây có phải là lựa chọn duy nhất không? – elgehelge

+0

@Helge một dynos tắt không tốn bất kỳ chi phí nào nhiều hơn một phút so với dynos chuẩn. –

+1

Bạn có thể sử dụng scrapy-heroku để chạy máy chủ Scrapyd trên heroku! Đã làm việc tuyệt vời cho tôi. https://github.com/dmclain/scrapy-heroku – arctelix

Các vấn đề liên quan