scrapy爬虫部署服务器的方法步骤

 更新时间:2022年6月13日 08:57  点击:343 作者:卑微小钟

一、scrapy爬虫部署服务器

scrapy通过命令行运行一般只用于测试环境,而用于运用在生产环境则一般都部署在服务器中进行远程操作。

scrapy部署服务器有一套完整的开源项目:scrapy+scrapyd(服务端)+scrapy-client(客户端)+scrapydweb

1、scrapyd

1.介绍

Scrapyd是用于部署和运行Scrapy爬虫的应用程序。它使您可以使用JSON API部署(上传)项目并控制其爬虫。

是目前分布式爬虫的最好解决方法之一

官方文档 https://scrapyd.readthedocs.io/

2.安装

pip install scrapyd

安装过程中可能会遇到大量的错误,大部分都是所依赖的包没有安装,安装过程中要确保scrapy已经安装成功,只要耐心的将所有缺少的依赖包安装上就可以了

打开命令行,输入scrapyd,如下图:

浏览器访问:http://127.0.0.1:6800/

2、scrapy-client

1.介绍:

scrapy-client它允许我们将本地的scrapy项目打包发送到scrapyd 这个服务端(前提是服务器scrapyd正常运行

官方文档https://pypi.org/project/scrapyd-client/

2.安装

pip install scrapy-client

和上面的scrapyd一样,可能会遇到各种错误,耐心一点,大部分都是安装依赖

3、scrapydweb(可选)

1.介绍

ScrapydWeb:用于Scrapyd集群管理的Web应用程序,支持Scrapy日志分析和可视化。

官方文档:https://pypi.org/project/scrapydweb/

2.安装

pip install scrapyd

在保持scrapyd挂起的情况下运行命令scrapydweb,也就是需要打开两个doc窗口

运行命令scrapydweb,首次启动将会在当前目录下生成配置文件“scrapydweb_settings_v*.py”

更改配置文件
编辑配置文件,将ENABLE_LOGPARSER更改为False

添加访问权限

SCRAPYD_SERVERS = [
    '127.0.0.1:6800',
    # 'username:password@localhost:6801#group',
    ('username', 'password', 'localhost', '6801', 'group'),
]

HTTP基本认证

ENABLE_AUTH = True
USERNAME = 'username'
PASSWORD = 'password' 

浏览器访问:http://127.0.0.1:5000/1/servers/

二、实际操作(一切的操作都在scrapyd启动的情况下)

1.上传爬虫

编辑scrapy.cfg,url是scrapyd服务器的位置,由于scrapyd在本地,所以是localhost。

注意:我们要切换到和scrapy.cfg同级目录下,继续以下操作

scrapyd-deploy

上图表示运行成功!

以上的文件夹是成功后自动创建的(为什么之前的截图有,我之前已经测试过)

然后输入以下命令上传服务器

scrapyd-deploy demo -p qcjob

结构:scrapyd-deploy -p (scrapyd-deploy <目标> -p <项目>)

运行成功的图片

2.启动爬虫

cmd输入(爬取一天内关于java的职业需求

curl http://localhost:6800/schedule.json -d project=qcjob -d spider=job -d key = java time=0

我编写的爬虫可以根据用户输入的参数来爬取数据

key=表示关键字(默认是全部)

time=表示时间(0=24小时,1=3天内,2=一周内,3=一个月内,默认为0)

当然scrapyd强大之处在于可以用http方式控制爬虫

http://localhost:6800/schedule.json?project=qcjob&spider=job&key=java&time=0 #POST

以下是用postmain进行模拟post请求。

然后进入http://127.0.0.1:6800/

点击job,就可以查看爬虫是否运行,和运行时间

从图可以看出,这个爬虫运行了9分31秒。

当然我们也可以从scrapydweb中查看和管理爬虫浏览器访问:http://127.0.0.1:5000/1/servers/

我们可以通过可视化界面来控制爬虫运行,scrapyd可以启动多个不同的爬虫,一个爬虫的多个版本启动。是目前分布式爬虫的最好解决方法!!!

三、数据展示

本次爬取花费9分31秒,共爬去25,000余条数据,爬虫速度开至每秒8次访问,以他该服务器的最大访问量

其中部分数据存在有误,为了保证速度,没有进行过多的筛取和排查,错误率保持较低水平

四、问题与思考

  • 通过爬去可以看得出,如果采用单一的爬虫的话,爬取速度还是比较慢的,如果采用多个爬虫,分布式爬取的话,就存在数据是否重复以及数据的共用问题。
  • 如果采用分布式爬虫的话,就涉及到ip代理,因为一台机器如果大量访问的话经过测试会导致浏览器访问,该网页都无法打开,如果设置IP代理,就需要大量的代理IP
  • 虽然爬虫已经部署在服务器上,但是还是无法做到,通过用户输入关键字时间等地址等多个参数进行爬取数据,无法做到实时展示,只能先运行爬虫,爬取大量数据储存与数据库,然后才能进行分析,做出图表。
  • 关于数据的统计与展示,单一的sql语句,很难满足其对大量数据的分析,可能需要用Python的数据分析库,对数据进行处理,然后才能展示。

五、收获

已经可以通过http请求的方式来控制爬虫的启动停止,以及传递参数,就等于scrapy爬虫是可以集成于web应用里面的。

到此这篇关于scrapy爬虫部署服务器的方法步骤的文章就介绍到这了,更多相关scrapy爬虫部署服务器内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!

原文出处:https://blog.csdn.net/zhongjianboy/article/details/123648380

[!--infotagslink--]

相关文章

  • zabbix v3.0安装部署全过程详解

    这篇文章主要介绍了zabbix v3.0安装部署全过程,文中通过一步步的步骤和图文介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。...2021-05-07
  • 部署PHP时的4个配置修改说明

    以下就是部署PHP时的4个配置修改说明,大家一个一个进行学习研究。1、short_open_tag 是什么呢? 决定是否允许使用代码开始标志的缩写形式(<&#63; &#63;> )。如果要和 XML 结合使用PHP,可以禁用此选项以便于嵌入使用<&#63;x...2015-10-21
  • 用C#做网络爬虫的步骤教学

    在本篇内容里小编给大家分享的是关于用C#做网络爬虫的步骤和方法,需要的朋友们可以参考下。...2020-06-25
  • Python爬虫基础之selenium库的用法总结

    今天带大家来学习selenium库的使用方法及相关知识总结,文中非常详细的介绍了selenium库,对正在学习python的小伙伴很有帮助,需要的朋友可以参考下...2021-05-25
  • 教你如何用Jenkins自动化部署项目(从零到搭建完成)

    这篇文章主要介绍了教你如何用Jenkins自动化部署项目(从零到搭建完成),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-08
  • selenium 反爬虫之跳过淘宝滑块验证功能的实现代码

    这篇文章主要介绍了selenium 反爬虫之跳过淘宝滑块验证功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-08-27
  • Jenkins+tomcat自动发布的热部署/重启及遇到的问题解决办法(推荐)

    这篇文章主要介绍了Jenkins+tomcat自动发布的热部署/重启及遇到的问题解决办法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-10
  • docker部署confluence的完整步骤

    这篇文章主要介绍了docker部署confluence的完整步骤,这里的镜像并不是小编自己写的是基于他人打包的文中有详细介绍,需要的朋友可以参考下...2021-06-11
  • shell脚本多实例部署nginx的详细教程

    周一今天给大家分享shell脚本多实例部署nginx的详细教程,文章通过实例代码脚本给大家详细介绍,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2021-10-26
  • 利用C#实现网络爬虫

    这篇文章主要介绍了利用C#实现网络爬虫,完整的介绍了C#实现网络爬虫详细过程,感兴趣的小伙伴们可以参考一下...2020-06-25
  • Nginx中配置过滤爬虫的User-Agent的简单方法

    这篇文章主要介绍了Nginx中配置过滤爬虫的User-Agent的简单方法,文中罗列了一些常用搜索引擎的爬虫名称以免造成不必要的过滤,需要的朋友可以参考下...2016-01-27
  • 使用Maven 搭建 Spring MVC 本地部署Tomcat的详细教程

    这篇文章主要介绍了使用Maven 搭建 Spring MVC 本地部署Tomcat,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-08-16
  • python爬虫用request库处理cookie的实例讲解

    在本篇内容里小编给大家整理的是一篇关于python爬虫用request库处理cookie的实例讲解内容,有需要的朋友们可以学习参考下。...2021-02-21
  • python 爬取京东指定商品评论并进行情感分析

    本文主要讲述了利用Python网络爬虫对指定京东商城中指定商品下的用户评论进行爬取,对数据预处理操作后进行文本情感分析,感兴趣的朋友可以了解下...2021-05-28
  • Tomcat首次部署web项目流程图解

    这篇文章主要介绍了Tomcat首次部署web项目流程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-11
  • 基于C#实现网页爬虫

    这篇文章主要为大家详细介绍了基于C#实现网页爬虫的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • c# Selenium爬取数据时防止webdriver封爬虫的方法

    这篇文章主要介绍了c# Selenium爬取数据时防止webdriver封爬虫的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-15
  • idea配置springboot热部署终极解决办法(解决热部署失效问题)

    这篇文章主要介绍了idea配置springboot热部署终极解决办法(解决热部署失效问题),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2020-07-22
  • C#爬虫通过代理刷文章浏览量

    本篇文章给大家分享了C#爬虫通过代理刷文章浏览量的详细步骤和方法,有兴趣的朋友可以参考学习下。...2020-06-25
  • node.js爬虫框架node-crawler初体验

    这篇文章主要介绍了node.js爬虫框架node-crawler的相关资料,帮助大家利用node.js进行爬虫,感兴趣的朋友可以了解下...2020-10-29