Scrapyd快速入门
简介:
- Scrapyd是用来运行scrapy爬虫的一个服务
- 特点:允许部署scrapy项目并且通过HTTP JSON的方式来控制爬虫
- 对scrapy的理解:
- scrapyd其实是一个服务器端的服务,真正部署爬虫的时候需要两个东西:
- 服务器端:scrapyd
- 客户端:scrapy-client
- scrapyd其实是一个服务器端的服务,真正部署爬虫的时候需要两个东西:
安装
服务器端
pip install scrapyd
或
conda install scrapyd
客户端
pip install scrapyd-client
或
conda install scrapyd-client
运行
试运行scrapyd查看可视化界面
命令行下输入scrapyd,正常运行后会有日志提示
Scrapyd web console available at http://127.0.0.1:6800/
浏览器访问此默认地址即可查看可视化界面
部署scrapy项目
在创建scrapy爬虫项目myspider后,修改scrapy.cfg配置文件默认如下:
[settings] default = myspider.settings # myspider为创建的scrapy项目名称 [deploy:server_name] # 为服务器指定一个名字,这里为server_name url = http://localhost:6800/ # 部署项目的服务器地址,此处为本地部署 project = myspider # 工程名myspider # 实际上产环境下需要验证登录scrapyd服务器 # username = *** # password = ***
进入爬虫根目录,即有scrapy.cfg文件的一级,运行
scrapyd-deploy <target> -p <project> # target为配置的服务器名字,project为项目名称
这里对应配置文件即为:
scrapyd-deploy server_name -p myspider
查看部署结果:
scrapyd-deploy -L <服务器名称>
或者查看http://localhost:6800/页面
注: 部署操作会打包当前项目,如果当前项目下有setup.py文件,就会使用其中的配置,没有就会自动创建一个(后期可以根据自己的需要修改里面的信息,也可以暂时不管它) 。从返回的结果里面,我们可以看到部署的状态,项目名称,版本号和爬虫个数,以及当前的主机名称
到现在只是部署成功,还没有启动爬虫
使用API管理爬虫
官方推荐使用curl来管理爬虫。Windows安装地址。
查看服务器端状态
curl http://localhost:6800/daemonstatus.json
启动爬虫:
curl http://localhost:6800/schedule.json -d project=PROJECT_NAME -d spider=SPIDER_NAME
下载可以进入http://localhost:6800/查看
停止一个爬虫:
curl http://localhost:6800/cancel.json -d project=PROJECT_NAME -d job=JOB_ID
启动爬虫时会输出的信息中会包含有JOB_ID
列出项目
curl http://localhost:6800/listprojects.json
列出爬虫、版本、job信息
curl http://localhost:6800/listspiders.json?project=PROJECT_NAME
删除爬虫项目
curl http://localhost:6800/delproject.json -d project=PROJECT_NAME -d job=JOB_ID
Logparser
简介
-
在scrapyweb中解析scrapyd的日志
-
logparser库的工作原理是每隔一段时间(默认10s)查看一下日志文件夹,然后解析,并生成stats.json文件。scrapyd在开启了端口后可以访问scrapyd的目录,因此可以在不修改scrapyd的情况下对日志解析
使用
安装
pip install logparser
或者
git clone https://github.com/my8100/logparser.git
cd logparser
python setup.py install
作为service运行
通过命令启动
logparser
查看当前状态
http://127.0.0.1:6800/logs/stats.json
获取某个爬虫人物的日志分析详情
http://127.0.0.1:6800/logs/projectname/spidername/jobid.json