下载代码
git clone -b ArticleSpider-elasticsearch https://github.com/mtianyan/Art icleSpider.git
这里我下载到了 desktop 目录
介绍
scrapyd 是一个 service 用来运行我们的 spider 实例
通过 http json 控制 spider
安装
安装到虚拟环境之下:
我们之前运行爬虫的虚拟环境
- workon articlespider3
- scrapyd
mark
这时访问浏览器的 6800 端口没有错误
mark
mark
看到我现在的目录在桌面
scrapyd 是一个服务器
我们部署需要两个东西, 一个是 scrapyd 一个是 scrapy client
client 打包发送到 server
对应的虚拟环境要能好好运行 scrapyd 部署到服务器
模拟客户端
打开一个新窗口
不用进入我们原先的虚拟环境
pip install scrapyd - client
mark
安装完成后 cd 到我们的项目目录
mark
前往配置我们的 scrapy.cfg
mark
名称需要自己记住如我的 mtianyan
找到自己当前窗口对应系统环境的 scrapyd-deploy 文件
mark
可以直接 scrapyd-deploy 命令, 但是这个是提供给 unix 用户的
windows 用户专属
在当前目录创建文件 scrapyd-deploy.bat
- @echo off
- "D:\softEnvDown\Anaconda2\envs\py3\python.exe" "D:\softEnvDown\Anaconda2\envs\py3\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
mark
首先找到虚拟环境下的 python.exe 路径
mark
找到 scrapyd-deploy 路径
mark
可以看到此时 scrapyd-deploy 可用
mark
-l 查看已经启动的 scrapyd 服务
窗口一也就是原来运行我们项目虚拟环境的那个
mark
cd 进项目目录
scrapy list
确保可以查看到我们的 spider 项目
开始部署
-p 要和配置文件中保持一致
mark
scrapyd - deploy mtianyan - p ArticleSpider
这是因为我们刚才想检查 scrapy list 把服务关了
mark
mark
开启服务后重新运行
mark
打包上传成功
前往验证项目上传完成
mark
mark
可以看到我运行 scrapyd 的目录中已经有 eggs 和 dbs
mark
eggs 中又有我们的 scrapy 项目
mark
开始运行我们的 scrapy 项目
curl http://localhost:6800/daemonstatus.json
mark
查看当前运行状态
curl http://localhost:6800/schedule.json -d project=ArticleSpider -d spider=jobbole
mark
mark
可以看到运行成功
本地运行可以打包报错_job(我 github 代码已经解决了这个错误)
jobbole.py 中
def __init__(self, **kwargs) :
添加参数 **kwargs
上传了错误的项目如何删除
curl http://localhost:6800/delproject.json -d project=ArticleSpider
浏览器中 finish 字段为空表示无异常
log 就是调试时的 log
取消 spider 任务
curl http://localhost:6800/cancel.json -d project=ArticleSpider -d job=2a9b218a13e011e888cb28d2449bc99e
mark
jobid 就是刚才启动时返回的那个
mark
mark
可以看到已经停止 finish 了
看到有几个 project,spider
curl http://localhost:6800/listprojects.json
查看有几个 spider
curl http://localhost:6800/listspiders.json?project=ArticleSpider
job 是另一个概念, 查看 jobs
一个爬虫运行多次是多个 job
curl http://localhost:6800/listjobs.json?project=ArticleSpider | python -m json.tool
mark
来源: http://www.jianshu.com/p/b0539a9a0825