在公司里面,除了会要写爬虫,还要会知道如何搭建爬虫管理系统~
GitHub:https://github.com/scrapy/scrapyd
API 文档:http://scrapyd.readthedocs.io/en/stable/api.html
安装配置scrapyd
1、新建虚拟环境(方便管理),并在虚拟环境中安装scrapy项目需要使用到的包。
mkvirtualenv scrapySpider
2、安装scrapyd模块,scrapyd模块是专门用于部署scrapy项目的,可以部署和管理scrapy项目。
pip install scrapyd
3、输入scrapyd启动scrapyd服务、浏览器输入127.0.0.1:6800 即可查看。
4、如果连接成功先关闭服务,新建一个文件夹,名称自定义如:scrapydProject,进入该文件夹,shift+右键打开命令行工具,输入scrapyd执行,执行完成后会新建一个dbs空文件夹,用来存放爬虫项目的数据文件。
5、安装scrapyd-client模块。
Scrapyd-Client:GitHub:https://github.com/scrapy/scrapyd-client
scrapyd-client模块是专门打包scrapy爬虫项目到scrapyd服务中的,进入虚拟环境,执行命令pip install scrapyd-client,安装完成后,在虚拟环境的scripts中会出现scrapyd-deploy无后缀文件,这个scrapyd-deploy无后缀文件是启动文件。
6、进入虚拟环境,进入到你的爬虫项目中,进入带有scrapy.cfg文件的目录,执行scrapyd-deploy,测试scrapyd-deploy是否可以运行,如果出现以下则正常
7、打开爬虫项目中的scrapy.cfg文件,这个文件就是给scrapyd-deploy使用的,将url这行代码解掉注释,并且给设置你的部署名称。
8、再次执行scrapyd-deploy -l 启动服务,可以看到设置的名称.
9、开始打包前,执行一个命令:scrapy list ,这个命令执行成功说明可以打包了,如果没执行成功说明还有工作没完成。
10、执行打包命令: scrapyd-deploy 部署名称 -p 项目名称
如:scrapyd-deploy bk -p baike
不用管,多提交几次,直到你的egg文件夹中有项目即可
11、部署scrapy
curl http://localhost:6800/schedule.json -d project=项目名称 -d spider=爬虫名称
可以去网页中127.0.0.1:6800查看爬虫运行状态
12、停止爬虫
curl http://localhost:6800/cancel.json -d project=项目名称 -d job=运行ID
13、删除scrapy项目
注意:一般删除scrapy项目,需要先执行命令停止项目下在远行的爬虫
curl http://localhost:6800/delproject.json-d project=scrapy项目名称
14、查看有多少个scrapy项目在api中
curl http://localhost:6800/listprojects.json
15、查看指定的scrapy项目中有多少个爬虫
curl http://localhost:6800/listspiders.json?project=scrapy项目名称
16、如果我们想用 Python 程序来控制一下呢?我们还要用 requests 库一次次地请求这些 API ?这就太麻烦了吧,所以为了解决这个需求,Scrapyd-API 又出现了,
GitHub:https://github.com/djm/python-scrapyd-api
有了它我们可以只用简单的 Python 代码就可以实现 Scrapy 项目的监控和运行
from scrapyd_api import ScrapydAPI
scrapyd = ScrapydAPI('http://localhost:6800')
scrapyd.list_jobs('project_name')
返回结果:
{
'pending': [
],
'running': [
{
'id': u'14a65...b27ce',
'spider': u'spider_name',
'start_time': u'2018-01-17 22:45:31.975358'
},
],
'finished': [
{
'id': '34c23...b21ba',
'spider': 'spider_name',
'start_time': '2018-01-11 22:45:31.975358',
'end_time': '2018-01-17 14:01:18.209680'
}
]
}
Gerapy
但这还不是最简单,面对这样枯燥的输入命令行部署,没有做到程序员应有的样子,所以Gerapy 就是为此而生的,它可以从 Scrapy 的部署、启动到监控、日志查看,让我们只需要鼠标键盘点几下就可以完成,甚至连 Scrapy 代码都可以帮你自动生成。
Gerapy - GitHub:https://github.com/Gerapy/Gerapy。
Gerapy具体安装配置及操作,可翻看下篇:https://blog.youkuaiyun.com/weixin_42277380/article/details/99547174