標籤:

[Scrapinghub] - 將爬虫部署在雲端

[Scrapinghub] - 將爬虫部署在雲端

4 人贊了文章

1 站點簡介

Scrapinghub 是當前 Scrapy 項目的最大讚助公司,是由 Scrapy 項目的創始人和主要維護者組建的公司。

在 scrapinghub 上提供了免費的 Scrapy Cloud 可供部署你在本地用 Scrapy 框架編寫的爬蟲(實際上就是一個 Scrapyd), 還支持 Portia,一個可視化爬蟲程序,不用寫任何代碼。

在Scrapinghub 上還有兩框付費產品:Crawlera、Splash,前者可以避免你在爬取數據時IP被 ban,後者大致是一個爬取網頁時可以渲染網頁上動態載入的內容的一個服務,具體上尚未使用過。

2 特性介紹

從我的使用中總結 Scrapy Cloud 大概有這麼幾個用處:

  • 雲端部署爬蟲(支持本地部署和 Github 上部署)
  • 定期執行爬蟲計劃
  • 數據導出、發布
  • 插件擴展(Addons)
  • 狀態監控
  • 版本控制

3 爬虫部署

先手動創建項目

在導航窗口中點擊 Code & Deploys 選擇部署代碼到雲端,我們先介紹從本地部署代碼:

本地部署

首次從本地部署代碼需要先安裝包:

pip install shub

然後通過 API key 登錄你賬戶:

在這個界面可以查看具體輸入什麼:

shub login

等待提示在輸入後面的 key

然後在 Scrapy 項目的根目錄執行:

shub deploy 一串數字

這一串數字代表了你當前在雲端的項目代碼。

這樣就代表部署成功,再看看雲端:

在列表裡的一串數字就是當前部署爬蟲的版本,其實就是時間戳,你可以通過可選參數 -V 自己定義。如果你需要更新你的爬蟲先把爬蟲項目下後生成的文件全部刪掉再執行

shub deploy 一串數字

這個個數字可以在網頁鏈接中看到。

Github 部署

從 GitHub 部署需要你將 GitHub 賬戶和雲端連接起來,鏈接成功後你既可以直接選擇你 GitHub 上的爬蟲項目了,效果和本地部署一樣。

當github有新的提交時,在 Cloud 中會自動更新。

4 爬蟲運行

雲端運行爬蟲也很簡單,也是支持傳入參數的。

開始運行爬蟲後可以在界面中找到運行狀態

下面的兩個運行結果分別是我在兩次提交爬蟲後運行的:

下面一個為第一此運行的結果,在這個爬蟲中我尚未開啟piplines中的過濾中件(FilterPipeline),一共返回了85項數據,在第二個中我開啟了過濾中間導致返回的Item為0,中間內容如下:

class FilterPipeline(object): def process_item(self, item, spider): if len(item[text]) > 12: raise DropItem("Text is too long:
%s" % item) else: return item

運行日誌可以在Log中查看:

開啟過濾中間:

在大家實際操作中可以進一步體驗。

5 數據導出

數據在不會根據你定義的保存到文件進行保存,實際上它是以通過piplines後的以 item 的形式存在的,你可以通過網站的導出工具進行導出,當然你可以在piplines中寫了資料庫中間,直接將數據發送到遠程資料庫。

6 計劃任務

推薦閱讀:

第八課3 爬蟲Scrapy 框架
python爬蟲,用Scrapy爬取豆瓣Top250,存入MySQL
Scrapy爬取圖片純新手試用篇(一)
Python爬蟲之Scrapy學習(基礎篇)

TAG:scrapy |