Scrapyd 在centos下線上部署Scrapy爬蟲
阿新 • • 發佈:2020-07-09
什麼是scrapyd
scrapyed = scrapy + deploying
把scrapy程式釋出到線上的一套python服務
步驟
1. 安裝
- 1.安裝scrapyd
安裝好scrapyd,先開啟服務
pip3 install scrapyd
# 開啟服務
scrapyd
- 2.安裝scrapyd-client
這是一個部署到scrapy到scrapyd服務中的工具
pip3 install scrapyd-client
該安裝包擁有scrapyd-deploy 命令,是爬蟲專案釋出到srcapyd服務的關鍵步驟,使用的前提是
必須要開啟scrapyd服務,也就是第一步a) 這一步window需要額外處理,linux不需要
2. 專案準備
- 1.修改配置檔案
首先修改scrapy配置檔案,進入scrapy專案資料夾,能看到配置檔案scrapy.cfg修改配置如下
[settings]
default = Demo.settings
[deploy:Demo] # 這邊專案名字隨便取
url = http://localhost:6800/ # 這個註釋開啟6800是後面訪問埠,如要修改,scrapyd裡面的也要記得一起修改
project = Demo
- 2.修改scrapyd配置檔案(該檔案可能由於不同的安裝可能路徑不一樣)
sudo find / -name default_scrapyd.conf # 首先知道這個配置檔案路徑 vim /your_path/default_scrapyd.conf # vim編輯配置檔案 # 下面是編輯配置檔案 [scrapyd] eggs_dir = eggs logs_dir = logs items_dir = jobs_to_keep = 5 dbs_dir = dbs max_proc = 0 max_proc_per_cpu = 10 #可以不改 這個引數和CPU個數的乘積是爬蟲同時執行的最多個數 為了以後方便改成10 finished_to_keep = 100 poll_interval = 5.0 bind_address = 0.0.0.0 # 繫結的IP地址改成0.0.0.0 外網就可以訪問 http_port = 6800 # 這邊是對應的埠 debug = off runner = scrapyd.runner application = scrapyd.app.application launcher = scrapyd.launcher.Launcher webroot = scrapyd.website.Root [services] schedule.json = scrapyd.webservice.Schedule cancel.json = scrapyd.webservice.Cancel addversion.json = scrapyd.webservice.AddVersion listprojects.json = scrapyd.webservice.ListProjects listversions.json = scrapyd.webservice.ListVersions listspiders.json = scrapyd.webservice.ListSpiders delproject.json = scrapyd.webservice.DeleteProject delversion.json = scrapyd.webservice.DeleteVersion listjobs.json = scrapyd.webservice.ListJobs daemonstatus.json = scrapyd.webservice.DaemonStatus
- 3.測試啟動
確保伺服器打開了6800埠
# TODO()首先進入scrapy專案資料夾下檢視專案是否能正常啟動
scrapy list # 如果有報錯缺什麼包 可以檢視我的之前的部落格
# 上一步正常 可以測試scrapyd 是否正常
scrapyd # 測試scrapyd開啟 務必保證開啟6800埠
# 這一步報錯 可以在stackoverflow 上找答案,我之前部落格也有相關的答錯
假如此時訪問 http://127.0.0.1/6800 出現scrapyd的頁面則表示成功
- Tips
後臺執行scrapyd可以使用 supervisor 管理後臺程序
- 4.啟動專案
# 部署專案, 一個scrapyd可以部署多個scrapy專案 scrapyd-deploy Demo(cfg:中的部署專案名) -p 爬蟲專案名(cfg中的project名) # Demo是在scrapy配置檔案裡面設定的部署名稱(假如沒有則為default)
3.控制scrapyd的指令方法
可以通過curl命令獲取6800相關的api介面對爬蟲進行遠端操作,比如 開啟爬蟲,停止爬蟲 等等,
- 開啟:專案名為爬蟲的頂級專案名,非上面的部署名
curl http://ip地址:6800/schedule.json -d project=專案名 -d spider=爬蟲名稱
- 關閉:job可以通過6800看
curl http://ip地址:6800/cancel.json -d project=專案名 -d job=232424434
- 刪除不要的專案,確保該專案沒有執行的爬蟲
curl http://ip地址:6800/delproject.json -d project=專案名
- 檢視還有多少專案
curl http://ip地址:6800/listprojects.json
大功告成
以上可以看到通過curl命令就是獲取介面命令的方法,可以使用scrapyd_api來快捷操作