scapyd scrapyd-client scrapy使用http调度spider.md
2016-06-21 23:16
567 查看
文档还是看英文的好,看中文的有些也是一知半解,反而会误解
管理scrapy工程部署,可以上传部署工程
管理spider,启动,停止,删除spider
管理scrapy日志,数据输出
官方文档url
scrapyd-deploy 上传scrapy工程到scrapd应用服务器
github 官网url
pip install scrapyd-client
mac平台下安装的scrapyd,默认没有生成配置文件,最好先手动配置好文件,以免使用过程中碰到莫名其妙的问题,本人走过弯路
配置过程按照官网所谓通俗的做法如下
deploy:target 若只有一个工程target可以省略,不管是否只有一个工程,统一格式都按照这么写
project:scrapy工程名
执行 scrapyd-deploy ios_analytics -p ios_get_app_analytics –v r1.0.0
解决:注意必须要有**kwargs,参数,此参数用来向Spider传递参数
基本概念
scrapyd
scrapyd是使用http方式,管理维护scrapy工程应用服务器管理scrapy工程部署,可以上传部署工程
管理spider,启动,停止,删除spider
管理scrapy日志,数据输出
官方文档url
scrapyd-client
使用scrapyd-client,打包scrapy工程scrapyd-deploy 上传scrapy工程到scrapd应用服务器
github 官网url
安装过程
非Ubuntu,以下是mac平台的安装过程
pip install scrapydpip install scrapyd-client
scrapyd 配置
文档参考: configurationsmac平台下安装的scrapyd,默认没有生成配置文件,最好先手动配置好文件,以免使用过程中碰到莫名其妙的问题,本人走过弯路
配置过程按照官网所谓通俗的做法如下
sudo mkdir /mnt/scrapyd # 目录自己定义 chown -R cdz /mnt/scrapyd cd /mnt/scrapyd/ mkdir eggs mkdir logs mkdir items mkdir dbs sudo mkdir /etc/scrapyd/ chown -R cdz /etc/scrapyd/ cd /etc/scrapyd/ vi scrapyd.conf 配置如下: [scrapyd] eggs_dir = /mnt/scrapyd/eggs logs_dir = /mnt/scrapyd/logs logs_filename = {spider}-{Y}{m}{d}.log items_dir = jobs_to_keep = 5 dbs_dir = /mnt/scrapyd/dbs max_proc = 0 max_proc_per_cpu = 4 finished_to_keep = 100 poll_interval = 5 bind_address = 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
scrapy项目scrapy.cfg 配置
配置如下:[settings] default = get_app_analytics.settings [deploy:ios_analytics] url = http://localhost:6800/ project = ios_get_app_analytics
deploy:target 若只有一个工程target可以省略,不管是否只有一个工程,统一格式都按照这么写
project:scrapy工程名
scrapyd-client 使用scrapy-deploy部署
cd 切换到scrapy.cfg所在目录执行 scrapyd-deploy ios_analytics -p ios_get_app_analytics –v r1.0.0
注意事项
ERROR: Error caught on signal handler: <bound method ?
原因:没有scrapyd.conf配置文件,scrapyd运行采用默认的配置,出错。stackflow上有解释是与FeedExports功能相关,但是官方文档默认FeedExports是禁用的,应该不受影响。无法找出具体原因,之前出问题是没有配置scrapyd.conf急于上线,手动增加配置文件后,修复问题。unexpected keyword argument ‘_job’
原因:继承Spider,重写init()函数,没有使用与接口同样的格式,函数格式:def init(self, callbackUrl=None, **kwargs): 注意要有**kwargs,scrapyd会调用spider,通过kwargs传递_job参数解决:注意必须要有**kwargs,参数,此参数用来向Spider传递参数
使用例子
普通调度
curl http://localhost:6800/schedule.json -d project=ios_get_app_analytics -d spider=get_app_detail传参数调度
curl http://localhost:6800/schedule.json -d project=ios_get_app_analytics -d spider=get_app_detail -d setting=APP_USER=xxx@icloud.com -d setting=APP_PASSWORD=haha相关文章推荐
- scrapyd的安装
- Scrapyd爬虫部署服务
- python scrapy 爬虫入门
- scrapy爬虫之scrapyd-client管理spider
- windows下的scrapyd-deploy无法运行的解决办法
- 设置scrapyd为系统后台服务及系统启动项
- scrapyd 部署和 scrapy开发(python2.4 升级到2.7.10)精简步骤
- python之Scrapyd部署爬虫项目(使用虚拟环境)
- Scrayp-通过scrapyd部署爬虫
- scrapyd schedule.json setting 传入多个值问题
- Scrapy爬虫及案例剖析
- scrapyd的Windows管理客户端
- django--中运行scrapy框架
- AngularJs练习Demo9 Http
- 利用FastJson来解析网络数据
- HTTP协议/RTSP协议/RTMP协议的区别
- HTTP与HTTPS的区别
- tcp总结
- linux网络编程-----实现并发访问网站------
- 使用HOG特征+BP神经网络进行车标识别