1. scrapyd的安裝
pip install scrapyd
pip install scrapyd-client
安裝scrapyd-client模塊板祝。scrapyd-client模塊是專門打包scrapy爬蟲項(xiàng)目到scrapyd服務(wù)中的,進(jìn)入虛擬環(huán)境甥桂,執(zhí)行命令pip install scrapy-client抓半,安裝完成后,在虛擬環(huán)境的scripts中會(huì)出現(xiàn)scrapyd-deploy無后綴文件格嘁,這個(gè)scrapyd-deploy無后綴文件是啟動(dòng)文件,在Linux系統(tǒng)下可以遠(yuǎn)行廊移,在windows下是不能運(yùn)行的糕簿,所以我們需要編輯一下使其在windows可以運(yùn)行新建一個(gè)scrapyd-deploy.bat文件,右鍵選擇編輯狡孔,輸入以下配置懂诗,注意:兩個(gè)路徑之間是空格
2. scrapydd的啟動(dòng)
- 命令行直接輸入: scrapyd
-
在瀏覽器輸入 localhost:6800,即可進(jìn)入scrapyd的界面
image.png
3. 配置
配置文件:C:\Python27\Lib\site-packages\scrapyd-1.1.0-py2.7.egg\scrapyd\default_scrapyd.conf
[scrapyd]
eggs_dir = eggs
logs_dir = logs
items_dir = items
jobs_to_keep = 50
dbs_dir = dbs
max_proc = 0
max_proc_per_cpu = 4
finished_to_keep = 100
poll_interval = 5
http_port = 6800
debug = off
runner = scrapyd.runner
application = scrapyd.app.application
launcher = scrapyd.launcher.Launcher
[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
3.1 進(jìn)入虛擬環(huán)境,進(jìn)入到你的爬蟲項(xiàng)目中苗膝,進(jìn)入帶有scrapy.cfg文件的目錄殃恒,執(zhí)行scrapyd-deploy,測(cè)試scrapyd-deploy是否可以運(yùn)行辱揭,如果出現(xiàn)以下則正常
3.2 打開爬蟲項(xiàng)目中的scrapy.cfg文件离唐,這個(gè)文件就是給scrapyd-deploy使用的,將url這行代碼解掉注釋问窃,并且給設(shè)置你的部署名稱
3.3 再次執(zhí)行scrapyd-deploy -l 啟動(dòng)服務(wù)亥鬓,可以看到設(shè)置的名稱
3.4 開始打包前,執(zhí)行一個(gè)命令:scrapy list 域庇,這個(gè)命令執(zhí)行成功說明可以打包了嵌戈,如果沒執(zhí)行成功說明還有工作沒完成
注意執(zhí)行 scrapy list 命令的時(shí)候很有可能出現(xiàn)錯(cuò)誤,如果是python無法找到scrapy項(xiàng)目听皿,需要在scrapy項(xiàng)目里的settings.py配置文件里設(shè)置成python可識(shí)別路徑
將當(dāng)前項(xiàng)目的一級(jí)目錄TotalSpider目錄添加到python可以識(shí)別目錄中
BASE_DIR = os.path.dirname(os.path.abspath(os.path.dirname(file)))
sys.path.insert(0, os.path.join(BASE_DIR, “TotalSpider”))
執(zhí)行打包命令: scrapyd-deploy 部署名稱 -p 項(xiàng)目名稱
如:scrapyd-deploy wj -pTotalSpider
如下顯示表示scrapy項(xiàng)目打包成功
如果顯示錯(cuò)誤熟呛,
請(qǐng)看錯(cuò)誤總結(jié)
curl http://localhost:6800/schedule.json -dproject=項(xiàng)目名稱 -d spider=爬蟲名稱
執(zhí)行后,如果出現(xiàn)
可以去網(wǎng)頁中127.0.0.1::6800查看爬蟲運(yùn)行狀態(tài)
停止爬蟲
curl http://localhost:6800/cancel.json -dproject=scrapy項(xiàng)目名稱 -d job=運(yùn)行ID
刪除scrapy項(xiàng)目
注意:一般刪除scrapy項(xiàng)目尉姨,需要先執(zhí)行命令停止項(xiàng)目下在遠(yuǎn)行的爬蟲
curl http://localhost:6800/delproject.json-d project=scrapy項(xiàng)目名稱
查看有多少個(gè)scrapy項(xiàng)目在api中
curl http://localhost:6800/listprojects.json
查看指定的scrapy項(xiàng)目中有多少個(gè)爬蟲
curlhttp://localhost:6800/listspiders.json?project=scrapy項(xiàng)目名稱
總結(jié)幾個(gè)請(qǐng)求url
1庵朝、獲取狀態(tài)
http://127.0.0.1:6800/daemonstatus.json
2、獲取項(xiàng)目列表
http://127.0.0.1:6800/listprojects.json
3、獲取項(xiàng)目下已發(fā)布的爬蟲列表
http://127.0.0.1:6800/listspiders.json?project=myproject
4偿短、獲取項(xiàng)目下已發(fā)布的爬蟲版本列表
http://127.0.0.1:6800/listversions.json?project=myproject
5欣孤、獲取爬蟲運(yùn)行狀態(tài)
http://127.0.0.1:6800/listjobs.json?project=myproject
6、啟動(dòng)服務(wù)器上某一爬蟲(必須是已發(fā)布到服務(wù)器的爬蟲)
http://127.0.0.1:6800/schedule.json (post方式昔逗,data={"project":myproject,"spider":myspider})
7降传、刪除某一版本爬蟲
http://127.0.0.1:6800/delversion.json
(post方式,data={"project":myproject,"version":myversion})
8勾怒、刪除某一工程婆排,包括該工程下的各版本爬蟲
http://127.0.0.1:6800/delproject.json(post方式,data={"project":myproject})