使用 Scrapyd 管理部署 Scrapy 的一些问题
环境:Ubuntu Xenial (16.04)
Scrapy 是一个不错的爬虫框架,但是不支持定时执行,常规的做法是使用 crontab 的方式进行定时执行 shell ,当爬虫数量多的时候,管理起来就非常麻烦,总是一个scrapy project 做一个deploy,很不方便 ,Google 了一番,发现 Scrapyd 比较符合我的需要。
#安装 scrapyd
apt-get 了一番貌似不支持 ubuntu 16.04,后面使用 pip3 install scrapyd
pip3 install scrapyd
pip3 uninstall scrapyd
#修改配置文件
scrapyd默认运行在6800端口 ,bind_address 127.0.0.1 ,只能本地访问
sudo vi /etc/scrapyd/scrapyd.conf
[scrapyd]
bind_address = 127.0.0.1
#bind_address = 0.0.0.0
scrapyd启动的时候会自动搜索配置文件,配置文件的加载顺序为
/etc/scrapyd/scrapyd.conf /etc/scrapyd/conf.d/* scrapyd.conf ~/.scrapyd.conf
注:不建议修改 bind_address = 0.0.0.0 ,这样有安全问题,可以通过 nginx 反向代理配置验证用户名密码
#使用 supervisor 守护 scrapyd 进程
sudo apt-get install supervisor
sudo apt-get remove supervisor
开启http的ui控制台
vi /etc/supervisor/supervisord.conf
[inet_http_server]
port = 0.0.0.0:8080
username = name
password = xxxxx
启动supervisor程序
sudo service supervisor start
sudo service supervisor stop
service supervisor status
sudo supervisorctl reload
supervisorctl status
pgrep -fl supervisord
sudo ps -ef | grep supervisor
配置scrapyd
cd /etc/supervisor/conf.d
touch scrapyd.conf
[program:scrapyd]
command=scrapyd
autorestart=true
sudo supervisorctl reload
#使用 nginx 代理 scrapyd
sudo apt-get install libpcre3 libpcre3-dev openssl libssl-dev
wget http://nginx.org/download/nginx-1.12.0.tar.gz
tar zxvf nginx-1.10.2.tar.gz
cd nginx-1.10.2
./configure --prefix=/opt/nginx --with-http_stub_status_module --with-http_gzip_static_module
make && make install
测试配置文件是否有错误
/opt/nginx/sbin/nginx -t
启动nginx
/opt/nginx/sbin/nginx
停止nginx
/opt/nginx/sbin/nginx -s stop
生成用户名为name 密码 xxx 的配置文件
apt install apache2-utils
htpasswd -bc .htpasswd name xxx
修改配置文件(增加了一个 server)
server {
listen 81;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://127.0.0.1:6800/;
auth_basic "Restricted";
auth_basic_user_file /opt/.htpasswd;
}
}
从新加载配置
/opt/nginx/sbin/nginx -s reload
#修改 scrapy.cfg 配置
[deploy:stockhq-server]
url = http://xxx.xxx.xxx.xxx:81/
project = stockhq
username = xxx
password = xxx
安装客户端
pip3 intall scrapyd-client
部署
➜ stockhq git:(master) ✗ scrapyd-deploy stockhq-server -p stockhq
Packing version 1492929824
Deploying to project "stockhq" in http://xxx.xxx.xxx.xxx:81/addversion.json
Server response (200):
{"status": "ok", "node_name": "iZbp1gf15gbzzqwvxbj18jZ", "version": "1492929824", "spiders": 1, "project": "stockhq"}
执行爬虫
curl 的 Basic Auth 参数:
-u, --user USER[:PASSWORD] Server user and password
➜ stockhq git:(master) ✗ curl http://120.26.40.126:81/schedule.json -d project=stockhq -d spider=stock_hq_jrj_spider -u username:password
{"status": "ok", "node_name": "iZbp1gf15gbzzqwvxbj18jZ", "jobid": "a69558b027f011e7857c00163e1354dc"}
注意点:
1.修改代码部署没有生效,请注意是否删除了项目根目录的 build 文件夹
2.定期清理爬虫的日志文件 /logs/projectname 目录下
REFER:
http://scrapyd.readthedocs.io/en/stable/overview.html
https://piaosanlang.gitbooks.io/spiders/05day/section5.3.htmlhttps://www.jianshu.com/p/c0de29466732
使用 Scrapyd 管理部署 Scrapy 的一些问题的更多相关文章
- Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理
Scrapy是一个流行的爬虫框架,利用Scrapyd,可以将其部署在远程服务端运行,并通过命令对爬虫进行管理,而Gerapy为我们提供了精美的UI,可以在web页面上直接点击操作,管理部署在scrap ...
- 第三百七十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目
第三百七十二节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目 scrapyd模块是专门用于部署scrapy项目的,可以部署和管理scrapy项目 下载地址:h ...
- 五十一 Python分布式爬虫打造搜索引擎Scrapy精讲—scrapyd部署scrapy项目
scrapyd模块是专门用于部署scrapy项目的,可以部署和管理scrapy项目 下载地址:https://github.com/scrapy/scrapyd 建议安装 pip3 install s ...
- 爬虫部署 --- scrapyd部署爬虫 + Gerapy 管理界面 scrapyd+gerapy部署流程
---------scrapyd部署爬虫---------------1.编写爬虫2.部署环境pip install scrapyd pip install scrapyd-client 启动scra ...
- Kubernetes用户指南(三)--在生产环境中使用Pod来工作、管理部署
一.在生产环境中使用Pod来工作 本节将介绍一些在生产环境中运行应用非常有用的功能. 1.持久化存储 容器的文件系统只有当容器正常运行时有效,一旦容器奔溃或者重启,所有对文件系统的修改将会丢失,从一个 ...
- 使用Scrapyd部署Scrapy爬虫到远程服务器上
1.准备好爬虫程序 2.修改项目配置 找到项目配置文件scrapy.cnf,将里面注释掉的url解开来 本代码需要连接数据库,因此需要修改对应的数据库配置 其实就是将里面的数据库地址进行修改,变成远程 ...
- 如何部署Scrapy 到Scrapyd上?
安装上传工具 1.上传工具 scrapyd-client 2.安装方法: pip install scrapyd-client 3.上传方法: python d:\Python27\Scripts\s ...
- scrapy-redis(七):部署scrapy
一般我们写好scrapy爬虫,如果需要启动的话,需要进入scrapy项目的根目录,然后运行以下命令: scrapy crawl {spidername} 这样我们就可以在终端查看到爬虫信息了.但爬虫运 ...
- docker微服务部署之:六、Rancher管理部署微服务
docker微服务部署之:五.利用DockerMaven插件自动构建镜像 一. 什么是Rancher Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源 ...
随机推荐
- 安卓 build/core/Makefile 以及main.mk
android make 系统总共分为四层 arch board device product 在各个字android.mk文件中引用的定义都存放在./build/core/下!比如android.m ...
- Mongoose轻松搞定MongoDB,不要回调!
MEAN开发栈中使用MongoDB的时候,与之配对的ORM最好的选择就是Mongoose了.本文就和大家一起探讨一下如何使用Mongoose来实现MongoDB的增删改查. 为了能使文中的例子更加生动 ...
- BAT的真的适合创业团队吗?
平时在公司扮演一个逗比得角色和亲爱的们友好相处的我根本不愿意去思考这么深入的课题.本来在上一家公司就涉及的太深,心爱的一条小产品线被咔掉后心疼不已.只想深入研究技术不问世事了.怎奈何突然有一天说要招一 ...
- hdu 2688
这题,因为要统计之前有多少个数比当前的数小,所以我用的树状数组 基本代码就是这样,还是比较好想的,只不过我没想出来罢了 #include <iostream> #include <c ...
- php excel
项目中需要把excel转为索引数组,不输出key 只说下普世技巧 找了php excel插件 发现需要createReader方法,在sublime中search,可以搜索文件内容,找到使用creat ...
- C# 简述Action与function
Action 与 Func是.NET类库中增加的内置委托,以便更加简洁方便的使用委托. 最初使用委托时,均需要先定义委托类型,然后定义一个符合委托类型签名的函数,在调用前,需声明并创建委托对象,将指定 ...
- 背水一战 Windows 10 (57) - 控件(集合类): ListViewBase - 增量加载, 分步绘制
[源码下载] 背水一战 Windows 10 (57) - 控件(集合类): ListViewBase - 增量加载, 分步绘制 作者:webabcd 介绍背水一战 Windows 10 之 控件(集 ...
- ZKWeb网页框架1.6正式发布
1.6.0更新的内容有 Dapper改进 更换Dapper.Contrib到Dommel 支持自定义列名的设置 支持忽略未映射的成员 支持插入Guid类型到MySQL数据库 支持JSON序列化类型 遇 ...
- Ubuntu18.04 - 实现鼠标右键新建文件功能!
Ubuntu18.04安装完毕后,你会发现,如果在桌面或其它地方,像在Windows下鼠标右键,新建一个文件,那么真的不行,没有那个选项!这个功能其实非常有用,怎么实现呢?新建一个你要右键新建类型文件 ...
- Linux系统文件压缩与备份(5)
在 Linux 系统选有相当多的压缩命令可以使用,这些压缩指令可以让我们更方便的从网上下载大型文件,本章第一节内容我们就来谈谈这个 Linux 系统下常用的几种压缩格式吧. 谈完了压缩后,我们接着来说 ...