使用Scrapyd部署爬蟲
Scrapyd:
一個部署和運作Scrapy爬蟲的應用程式,它使使用者能在網頁檢視正在執行的任務,能通過JSON API部署(上傳)工程和控制工程中的爬蟲,如建立爬蟲任務、終止爬蟲任務等。
1.要使用Scrapyd部署,需要安裝Scrapyd
pip install scrapyd
2.運作Scrapyd
>scrapyd
預設情況下,Scrapyd監聽0.0.0.0:6800端口,用浏覽器開:http://localhost:6800/,就能看到Scrapyd已經成功運作。單機頁面的Jobs檢視已經部署的爬蟲,單擊Logs檢視日志資訊。

3.将代碼上傳并部署到Scrapyd,需要使用一個專門的打包上傳工具scrapyd-client
>pip install scrapyd-client
4.将本地Scrapy項目中的scrapy.cfg配置檔案進行配置
[settings]
default = lianjia01.settings
[deploy]
url = http://localhost:6800/
project = lianjia01
5.scrapyd-client為使用者提供了scrapyd-deploy指令,用來打包和上傳爬蟲代碼。
Windows下,使用此指令,可能會出現:“‘scrapyd-deploy’ 不是内部或外部指令,也不是可運作的程式或批處理檔案。”的提示。在Python的scripts目錄,能發現一個scrapy-deploy的檔案,但也無法執行。解決辦法
進入Python的scripts目錄,建立scrapy.bat、scrapyd-deploy.bat兩個檔案。
5.1編輯scrapy.bat:
@echo off
C:\ProgramData\Anaconda3\python C:\ProgramData\Anaconda3\Scripts\scrapy %*
5.2編輯scrapyd-deploy.bat:
@echo off
C:\ProgramData\Anaconda3\python C:\ProgramData\Anaconda3\Scripts\scrapy-deploy %*
6.指令行進入到某個爬蟲項目目錄,執行指令:
>scrapyd-deploy
#####報錯問題
>scrapyd-deploy
'scrapyd-deploy' 不是内部或外部指令,也不是可運作的程式
或批處理檔案。
6.1原因
scrapyd和scrapyd-client版本不相容!
直接pip安裝的scrapyd版本為1.2.0,scrapyd-client版本為:1.1.0
6.2解決(或第5步)
安裝一個版本和scrapyd相适應的scrapyd-client
pip install scrapyd-client==1.2.0a1
6.3再次執行
>scrapyd-deploy
6.4若提示部署status狀态是OK,說明爬蟲部署成功。如果想啟動爬蟲,可以輸入:
project後面是項目名稱,spider後面是爬蟲名稱
>curl http://localhost:6800/schedule.json -d project=lianjia01 -d spider=lianjia
7.在浏覽器打開:http://localhost:6800/,檢視爬蟲運作情況。
8.如果代碼發生改變,可以重新打包部署,Scrapyd預設執行最新的版本
9.如果要部署到遠端伺服器,Scrapy項目中scrapy.cfg檔案的URL需要配置為遠端伺服器的位址
10.Scrapyd還提供了很多友善的指令,如停止一個爬蟲的指令為
>curl http://localhost:6800/cancel.json -d project=lianjia01 -d job=JOB_ID
JOB_ID從web控制台PID獲得
注意:在使用遠端部署的時候,要注意安全問題
鍊家經紀人爬取源碼