2012-10-08 37 views
9

我在scrapy中開發了幾個蜘蛛&我想測試Heroku雲上的那些蜘蛛。有人對Heroku雲中如何部署Scrapy蜘蛛有任何想法嗎?如何在Heroku雲上部署Scrapy蜘蛛

+0

scrapy-heroku是專門爲此目的而編寫的:http://pypi.p ython.org/pypi/scrapy-heroku –

回答

11

是的,在Heroku上部署和運行Scrapy蜘蛛相當簡單。

下面是使用一個真正的Scrapy項目爲例步驟:

  1. 克隆項目(請注意,它必須有一個requirements.txt文件的Heroku將其識別爲一個Python項目):

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

  2. 將cffi添加到requirements.txt文件(例如cffi == 1.1.0)。

  3. 創建Heroku的應用程序(這將添加一個新的Heroku遠程Git):

    heroku create

  4. 部署項目(這將需要一段時間,在第一時間,將塞建成時):

    git push heroku master

  5. 運行你的蜘蛛:

    heroku run scrapy crawl followall

一些注意事項:

  • Heroku的磁盤是短暫的。如果你想存儲在一個固定的地方被刮取的數據,你可以使用S3 feed export(通過追加-o s3://mybucket/items.jl)或使用一個插件(如MongoHQ或Redis去)並寫一條管道來存儲你的物品
  • 這將是酷在Heroku上運行Scrapyd服務器,但目前不可能,因爲sqlite3模塊(Scrapyd要求)在Heroku上不起作用
  • 如果您想要一個更復雜的解決方案來部署Scrapy蜘蛛,請考慮設置您自己的Scrapyd server或使用託管服務,如Scrapy Cloud
+0

我相信'heroku run'會啓動一次性Dyno,這將導致花費更多的錢。這是唯一的選擇嗎? – elgehelge

+0

@使用一個關卡,每分鐘不要超過標準的dynos。 –

+1

您可以使用scrapy-heroku在heroku上運行Scrapyd服務器!一直在爲我工作很好。 https://github.com/dmclain/scrapy-heroku – arctelix