Scrapyd-网页版分布爬虫管理器
scrapyd英文文档:https://scrapyd.readthedocs.io/en/stable/
scrapyd中文文档:https://piaosanlang.gitbooks.io/spiders/05day/section5.3.html
项目地址:https://github.com/scrapy/scrapyd
前言
今天介绍的是scrapyd,是scrapy项目下的一个子项目,主要是用来便于管理分布式爬虫,根据上一篇分布式scrapy爬虫我们可以知道,我们写好分布式爬虫之后往往需要放到多个爬虫服务器上,当然也是可以放在一个服务器上,但是多个爬虫服务同时开启管理起来就比较麻烦,今天介绍的scrapyd就是用来管理多个并行爬虫的工具。
准备
-
电脑一台
-
服务器一台(也可以不用)
-
之前的scrapy项目----news
scarpyd实战案例
1.安装环境
在windows环境下使用pip intsall scrapyd-client安装scrapyd客户端
之后在爬虫服务器端使用pip install scrapyd安装服务器端(我是用的是linux环境做服务器,linux的具体操作可以使看之前的推文linux教程)
在客户端找到python安装路径里的script文件,进入后你会发现里边有一个scrapyd-deploy是没有后缀的
在这个路径下新建一个bat文件,在里边输入以下内容
之后保存即可。
2.项目上传
在上传之前需要先修改一下news爬虫的内容,在爬虫项目根目录下的scrapy.cfg。
之后打开cmd进到爬虫的目录之后输入以下命令:
之后就将项目上传到服务器上了,然后在服务器输入scrapyd就打开了scrapyd服务器了。
3.启动爬虫
在客户端cmd输入:
curl http://服务器ip:6800/schedule.json -d project=工程名(news) -d spider=爬虫名(news_spider)
爬虫就自动开启了
4.关闭爬虫:
在客户端cmd输入:
curl http://爬虫ip:6800/cancel.json -d project=news -d job=jobid(后边会说明)
5.效果展示
jobid相当于每个开启的爬虫的一个身份证,结束爬虫的时候需要用到。
常见问题
问题一:在客户端打不开服务器端管理网页
发现是本地环回地址
解决思路:在服务器端使用命令find / -name scrapyd.conf,找到配置文件之后,进行修改,将bind_address改成0.0.0.0(vi操作在linux入门中第三篇)
问题二:使用浏览器访问服务器地址的时候始终无法访问
解决思路:不要使用2345浏览器或者其他浏览器访问,换成Chrome就可以解决问题。
总结
在爬虫较多比较难管理的时候可是考虑使用scrapyd进行管理,管理起来比较方便,并且部署起来难度也不是很大。并且可以使用Gerapy和scrapyd相结合来实现可视化的效果。