官方文檔:http://scrapyd.readthedocs.io/en/stable/
scrapy爬蟲寫好后,一般需要用命令行運行。scrapyd部署能夠在網(wǎng)頁端查看正在執(zhí)行的任務(wù),也能新建爬蟲任務(wù),和終止爬蟲任務(wù)。優(yōu)點:在網(wǎng)頁端管理爬蟲,可以控制多個爬蟲任務(wù)。
1.安裝
pip install scrapyd
pip install scrapyd-client
2.基本使用
2.1 運行scrapyd
在scrapy.cfg中,取消#url = http://localhost:6800/前面的“#” 。
首先切換命令行路徑到Scrapy項目的根目錄下,
開啟scrapyd服務(wù),輸入scrapyd,將scrapyd運行起來
然后新開一個終端切換路徑至scrapy工程根目錄,發(fā)布scrapyd項目,運行命令:
scrapd-deploy -p projectName
驗證是否發(fā)布成功:
scrapyd-deploy -l
2.2 發(fā)布工程到scrapyd
上述命令已經(jīng)開啟服務(wù),并創(chuàng)建了爬蟲項目
2.3 創(chuàng)建爬蟲任務(wù)
命令行輸入
curl http://localhost:6800/schedule.json -d project=projectName -d spider=spiderName
3. 查看爬蟲任務(wù)
在網(wǎng)頁中輸入:http://localhost:6800/
4.修改scrapyd的配置
scrapyd默認保留5條日志。
默認綁定地址為127.0.0.1。如果是在服務(wù)器部署爬蟲需要在其他主機訪問則修改地址為0.0.0.0
pip show scrapyd找到scrapyd的位置


一些常用命令:
-
查看狀態(tài):
scrapyd-deploy -l
-
啟動爬蟲:
curl http://localhost:6800/schedule.json -d project=PROJECT_NAME -d spider=SPIDER_NAME
-
停止爬蟲:
curl http://localhost:6800/cancel.json -d project=PROJECT_NAME -d job=JOB_ID
-
刪除項目:
curl http://localhost:6800/delproject.json -d project=PROJECT_NAME
-
列出部署過的項目:
-
列出某個項目內(nèi)的爬蟲:
curl http://localhost:6800/listspiders.json?project=PROJECT_NAME
-
列出某個項目的job:
curl http://localhost:6800/listjobs.json?project=PROJECT_NAME
1、獲取狀態(tài)
http://127.0.0.1:6800/daemonstatus.json
2、獲取項目列表
http://127.0.0.1:6800/listprojects.json
3、獲取項目下已發(fā)布的爬蟲列表
http://127.0.0.1:6800/listspiders.json?project=myproject
4、獲取項目下已發(fā)布的爬蟲版本列表
http://127.0.0.1:6800/listversions.json?project=myproject
5、獲取爬蟲運行狀態(tài)
http://127.0.0.1:6800/listjobs.json?project=myproject
6、啟動服務(wù)器上某一爬蟲(必須是已發(fā)布到服務(wù)器的爬蟲)
http://localhost: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})
參考文章:https://www.cnblogs.com/zhongtang/p/5634545.html
重啟scrapyd的方法
(1)ps aux|grep scrapyd:找到scrapyd的pid
(2) kill -9 pid 或者kill pid
(3)screen -S scrapyd 新建一個進程
(4) 在進程里啟動scrapyd
/usr/bin/python /usr/local/bin/scrapyd
(5)ctrl+A+D退出進程
(6)改工程的scrapy.cfg文件,如果url有#號,把url前的#去掉
(7)可以scrapyd-deploy工程了
screen參考:
https://www.ibm.com/developerworks/cn/linux/l-cn-screen/
http://man.linuxde.net/screen
殺死screen會話 screen -X -S pid quit 其中pid為screen進程號
screen -ls 列出現(xiàn)有screen會話列表
screen -r pid 恢復(fù)到某個screen會話
Ctrl+a +d 保留會話離開當(dāng)前窗口