Scrapy是一个流行的爬虫框架,利用Scrapyd,可以将其部署在远程服务端运行,并通过命令对爬虫进行管理,而Gerapy为我们提供了精美的UI,可以在web页面上直接点击操作,管理部署在scrapyed上的爬虫,本文介绍 Scrapyd与Gerapy的基本安装与使用方法   一、Scrapyd简介:   Scrapyd是一个服务,允许用户将爬虫部署在服务端,并通过HTTP JSON的方式控制爬虫,并且可以通过web页面监控爬虫状态 二、Scrapyd安装部署:   在向服务器部署爬虫时,我们需要下载2个模块   1、scrapyd(安装在服务端,运行服务)   2、scrapy-client(安装在客户端,用于将自己的爬虫部署到服务器上)
  • 服务端安装部署
    首先在远程的Ubuntu服务器上安装scrapyd:     pip install scrapyd     安装完毕后,查看scrapyd的配置文件,scrapyd会在如下位置依次查找配置文件,并以最后一个找到的配置文件为准进行配置     /etc/scrapyd/scrapyd.conf (Unix)     c:\scrapyd\scrapyd.conf (Windows)     /etc/scrapyd/conf.d/* (in alphabetical order, Unix)     scrapyd.conf     ~/.scrapyd.conf (users home directory)     查看scrapyd的安装目录  */site-packages/scrapyd,发现有一个default_scrapyd.conf默认配置文件,打开该文件,显示如下内容     这里有一个名为bind_address的选项,默认值为127.0.0.1,我们将其改为0.0.0.0在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有多个IP地址,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过多个ip地址都能够访问该服务。 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第1张 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第2张       配置完毕后输入 Scrapyd &启动后台服务     此时输入 netstat -an | grep 6800查看,发现6800端口已经启动监听 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第3张 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第4张     随后,打开浏览器,输入 服务端地址:6800,显示如下页面,配置成功 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第5张

 

Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第6张     不过,此时,我们发现页面中的Available projects一行为空,这是因为我们还没有部署任何Scrapy爬虫项目,接下来,我们要将客户端的Scrapy项目部署到服务器上运行  
  • 客户端安装部署
     pip install scrapy-client     执行完毕后,找到scrapy-client的安装目录,发现一个名为 scrapyd-deploy的文件,我们把它复制到scrapy项目中与scrapy.cfg同级的目录中(不复制也可以,但这样操作会方便一点)     打开scrapy.cfg文件,有如下内容,需要做的就是把[deploy]改为 [deploy:target]的形式,target名称自拟,然后再把url前的注释去掉,并且将地址改为scrapyd的服务器地址。 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第7张 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第8张     修改完毕后,我们需要用刚刚复制来的scrapyd-deploy来部署爬虫,打开scrapyd-deploy文件,找到如下部分,给出了scrapyd-deploy可以接收的参数以及相应的作用   Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第9张 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第10张     我们发现输入-l可以列出所有可用的target,由于scrapyd-deploy本身是一个python文件,因此我们输入      python scrapyd-deploy -l来查看target的配置情况      Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第11张 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第12张     查看结果与刚才在scrapy.cfg文件中的配置相同。     随后输入 python scrapyd-deploy -L test来查看名为test的target下可用的爬虫项目 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第13张 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第14张     同样与配置相符       随后我们输入python scrapy-deploy test -p toolspider 将test中的toolspider项目部署到scrapyd服务端 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第15张

Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第16张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。     出现以上信息,代表部署成功,此时打开 服务器地址:6800 这个页面,发现Available projects中已经有了我们刚刚部署的toolspider项目      Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第17张

 

Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第18张   三、使用Scrapyd管理爬虫     Scrapyd采用http与json的方式管理爬虫,下面来看一下具体的用法   1、执行爬虫     执行爬虫用到的是schedule.json,通过向 http://localhost:6800/schedule.json提交post请求并附带项目名以及爬虫名参数完成     在服务端输入 curl http://localhost:6800/schedule.json -d project=toolspider -d spider=toolspider执行刚才部署的爬虫(d表示data,即post请求提交的数据),执行完毕后返回如下结果 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第19张 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第20张     此时再查看浏览器,Scrapyd页面,点击Jobs,出现如下信息,爬虫执行完毕      Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第21张

 

Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第22张   2、查看项目     查看项目用到的是listprojects.json,此方法采用get方式提交,不接受参数,可以直接在浏览器端提交并查看返回结果      Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第23张 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第24张     同样,在服务端输入 curl http://localhost:6800/schedule.json也可以得到结果 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第25张 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第26张     查看项目中的爬虫,用到的是listspider.json,同样也是get方法,接受一个project参数,即具体项目名,效果如图      Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第27张 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第28张   3、删除项目     删除项目用到的是delproject.json,采用post方法,提交一个项目名称的数据     在服务端输入 curl http://localhost:6800/schedule.json -d project=toolspider即可删除   4、其他     除此之外还有daemonstatus.json,addversion.json,listversions.json,delversion.json,cancel.json,listjobs.json,具体使用方法可以查看scrapyd官方文档 https://scrapyd.readthedocs.io/en/stable/   四、采用Gerapy管理爬虫   scrapyd采用命令行的形式,通过http与json对爬虫进行管理,操作显得有些繁琐,对爬虫的状态展示也不直观,而Gerapy为我们提供了精美的UI与简介的操作方式,只需要用鼠标在浏览器上点击操作便可以完成对爬虫的管理,需要注意的是,Gerapy只为我们提供了操作界面,真正的爬虫还是部署在服务器的Scrapyd上,   1、Gerapy下载     pip install gerapy     下载完成后在命令行中输入gerapy,出现如下信息说明安装成功 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第29张 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第30张   2、Gerapy初始化     gerapy init     cd gerapy     gerapy migrate     在命令行中输入gerapy init,执行完毕后在当前目录下会生成一个名称为gerapy的文件夹,随后进入该文件夹,下输入gerapy migrate ,成功后在gerapy目录下生成一个sqlite数据库     3、运行Gerapy     gerapy runserver     出现如下信息表示执行成功 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第31张Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第32张     随后在浏览器中输入127.0.0.1:8000打开gerapy界面如图,我这里已经配置了一台远程服务器,因此normal显示为1 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第33张

 

Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第34张     点击左侧的Client,随后在Client界面的右上角点击create创建远程主机 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第35张Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第36张     输入Scrapyd服务器的ip与端口(6800),自己随便起个名字,完成配置,结果显示如下 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第37张

 

Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第38张     要执行爬虫,直接点击右侧的schedule便可以显示出当前项目中的所有爬虫信息,点击run按钮便可直接运行爬虫,并实时在页面上显示状态 Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第39张Scrapyd+Gerapy部署Scrapy爬虫进行可视化管理 随笔 第40张    
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄