爬虫打包使用scrapyd scrapyd-client spi
1,安装:
pip3 install scrapyd
pip3 install spiderkeeper
本地安装:
pip3 install scrapyd-client
2,服务器上的操作:
在linux中使用指令 find / -name default_scrapyd.conf,找出其具体位置 然后 vim修改
bind_address = 0.0.0.0 才可以外网访问 。另外阿里云服务器的安全组入口配置5000(spiderkeeper),6800(scrapyd)端口可以访问才可以。
后台启动运行
$ nohup scrapyd &
$ nohup spiderkeeper &
(默认账户密码:admin,admin
如果使用多台服务器配置:spiderkeeper --server=http://ip:6800 --server=http://ip:6800)
3,客户端操作
a,本地代码同步到服务器上
b,修改scrapy.cfg
[settings]
default =imageSpider.settings
[deploy:myspider]
url =http://服务器ip:6800/
project =imageSpider
c, scrapyd-deploy myspider -p imageSpider 部署到服务器
curl http://服务器ip:6800/schedule.json -d project=imageSpider -d spider=rssi 运行爬虫,测试一下
然后即可在http://服务器ip:6800/jobs查看调度结果了
d,在项目目录下输入scrapyd-deploy --build-egg output.egg生成egg文件
e,在spiderkeeper网页中一次点击Manager-Createproject,创建项目,把上一步生成的egg文件传进去,就OK了,现在你可以在浏览器管理你服务器上的scrapy了,有启动,停止,定时启动,查看日志等功能
错误:
scrapyd schedule job 时, 遇到错误 TypeError: init() got an unexpected keyword argument '_job' , 需要在spider的__init__方法里添加 **kwargs 参数
进入项目spiders目录, 修改testspider.py 文件里__init__ 方法即可: def init(self, **kwargs):
├── init.py ├── items.py ├── pipelines.py ├── settings.py └── spiders ├── testspider.py