scrapyd 部署爬蟲專案

LH_python發表於2018-03-22

scrapyd部署爬蟲的優勢:
1、方便監控爬蟲的實時執行狀態,也可以通過介面呼叫開發自己的監控爬蟲的頁面
2、方便統一管理,可以同時啟動或關閉多個爬蟲
3、擁有版本控制,如果爬蟲出現了不可逆的錯誤,可以通過介面恢復到之前的任意版本

實現功能,爬蟲專案在伺服器端執行,實現爬蟲遠端管理,不佔用本機的執行空間。

=======================================================

首先 新建一個虛擬環境 使用mkvirtualenv 來新建一個虛擬環境,進入虛擬環境使用pip 將做需要的

安裝包安裝完成。一般有scrapy,scrapyd,等等

等安裝完了,用scrapy sheel http://www.baidu.com 來驗證一下是否成功

如果出現   ImportError: No module named win32api 就安裝一下 pip install pywin32

因為scrapy執行需要依賴包,出現什麼錯誤就安裝 什麼,知道執行正常。


嘗試開啟 scrapyd服務,然後開啟瀏覽器 看伺服器是否建成功。



這樣就 代表著伺服器可以建成功,就在非C盤下新建一個資料夾,名字自定義,如果伺服器在本地這個資料夾是來存放伺服器獲取的資料。那麼就在此處開啟cmd,進入虛擬環境,開啟伺服器,系統就會自動生成資料夾來儲存資訊。

安裝一個scrapyd-client模組到虛擬環境中,這個模組是用來打包scrapy專案到scrapyd服務中的。


安裝完成之後,會在虛擬環境中出現scrapy-deploy的啟動檔案,這個檔案在linux中可以執行,在windows下

需要編輯使其可以執行。(新建一個檔案把其名字改為 scrapyd-deploy.bat這樣這個檔案就可以編輯了)


進入虛擬環境,進入爬蟲專案,進入帶有scrapy.cfg檔案的目錄下,執行scrapyd-deploy,來進行測試scrapy-deploy

是否可以正常執行,如果正常出現以下樣式:

這裡沒有顯示成功是應為 我們專案中的檔案還沒有修改成遠端連線的原因,接下來就開始修改scrapy.cfg檔案。

在開始打包之前,先執行一個命令:scrapy list 這個命令成功說明就可以打包了,如果沒執行成功,說明還沒有開始工作

注意執行 scrapylist,

如果是python無法找到scrapy專案,需要在scrapy專案裡的settings.py配置檔案裡設定成python可識別路徑

# 將當前專案的一級目錄TotalSpider目錄新增到python可以識別目錄中

BASE_DIR = os.path.dirname(os.path.abspath(os.path.dirname(__file__)))

sys.path.insert(0, os.path.join(BASE_DIR, TotalSpider))


如果錯誤提示,什麼遠端計算機拒絕,說明你的scrapy專案有連結遠端計算機,如連結資料庫或者elasticsearch(搜尋引擎)之類的,需要先將連結伺服器啟動執行

scrapy list  命令返回了爬蟲名稱說明一切ok了,如下圖

到此我們就可以打包scrapy專案到scrapyd了,用命令結合scrapy專案中的 scrapy.cfg檔案設定來打包專案。

開始執行打包命令 scrapy-deploy ks -p JobSpider

如果出現

就是版本不對,建議安裝pip install scrapyd==1.1.1,直到你的egg資料夾中有專案即可,如果直接安裝不下來就去

官網下載低版本的。然後安裝, 然後執行爬蟲命令,

curl http://localhost:6800/schedule.json -d project=專案名稱 -d spider=爬蟲名稱


出現這個就是代表成功。可以取網頁中檢視爬蟲狀態。

以下為命令總結。。




相關文章