scrapy爬虫部部署服务器

时间:2020年5月27日18:28:30

作者:钟健

记录:scrapy爬虫

关键字:scrapy scrapyd scrapydweb

一、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爬虫部署服务器相关推荐

  1. 【Python实战】用Scrapyd把Scrapy爬虫一步一步部署到腾讯云上,有彩蛋

    接着之前的几篇文章说. 我把爬虫已经写好了,而且在本地可以运行了. 这个不是最终的目的啊. 我们是要在服务器上运行爬虫. 利用周末,同时腾讯送的7天云服务器体验也快到期了 就在这里再来一篇手把手的将爬 ...

  2. Python爬虫总结——Scrapy+Gerapy部署网络爬虫

    Python爬虫总结--从基础爬虫到Scrapy+Gerapy部署网络爬虫 前言 一.常用pip模块介绍 1.NumPy库 2.Pandas库 3.Requests库 4.BeautifulSoup库 ...

  3. 爬虫学习笔记(十三)—— scrapy-redis(二):存储到MySQL、Scrapy项目部署

    文章目录 一.小案例:爬取纵横小说(RedisCrawlSpider) 1.1.spider文件 1.2.settings文件 二.redis数据存储到MySQL 三.Scrapy 项目部署 3.1. ...

  4. scrapy 分布式 mysql_Scrapy基于scrapy_redis实现分布式爬虫部署的示例

    准备工作 1.安装scrapy_redis包,打开cmd工具,执行命令pip install scrapy_redis 2.准备好一个没有BUG,没有报错的爬虫项目 3.准备好redis主服务器还有跟 ...

  5. 部署scrapy爬虫到AWS Ubuntu 18.04,用crontab定时执行

    本文介绍了如何把windows下面的scrapy脚本部署到AWS Ubuntu上,并使用crontab定时执行. 我的scrapy爬虫原来部署在windows服务器,爬虫每个小时从几个字幕网站爬字幕. ...

  6. Linux环境下使用scrapyd+spiderkeeper部署scrapy爬虫

    声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢! 项目场景: 当我们入手爬虫工作的时候,一开始可能就是几个爬虫,我们可以手动调度部署,日积月累后,可能从十个到一百个 ...

  7. Scrapy爬虫项目的管理部署

    前言 为了方便对爬虫项目的流程化管理,需要一款合适的工具.主要实现的功能有: 能对爬虫项目的管理做到"统一"."稳定"."方便": 能够查看 ...

  8. Scrapy爬虫基本使用

    一.Scrapy爬虫的第一个实例 演示HTML地址 演示HTML页面地址:http://python123.io/ws/demo.html 文件名称:demo.html 产生步骤 步骤1:建议一个Sc ...

  9. centos7 python3 爬虫登陆邮箱_Centos7搭建Scrapy爬虫环境

    写在前面 因为之前的爬虫环境一直是部署在我自己本地的电脑上的,最近,写了一个监控别人空间的爬虫,需要一直线上24小时运行,所有就打算云服务器上部署环境,也捣鼓了好一会才弄好,还是有一些坑,这里先记录一 ...

  10. Scrapy爬虫框架学习_intermediate

    一.Scrapy爬虫框架介绍 Scrapy是功能强大的非常快速的网络爬虫框架,是非常重要的python第三方库.scrapy不是一个函数功能库,而是一个爬虫框架. 1.1 Scrapy库的安装 pip ...

最新文章

  1. 使用c++进行Windows编程中各种操作文件的方法 【转】
  2. oracle rac重建grid,oracle 11g rac安装之grid报错解决
  3. 所有人问「贴吧之父」俞军
  4. JSR 365更新:深入CDI 2.0
  5. html文件图标变成白色,win10系统html文件图标变成空白的操作办法
  6. Linux Shell 中 ()、(())、[]、[[]]、{} 的作用
  7. ajax 传送很多html字符串到前台例子
  8. linux 6.4 multipath.conf跟其他版本的区别,宏杉与其他厂商存储共用multipath的配置方法...
  9. 别让你的项目,毁在单片机选型上
  10. 谷歌gmail注册入口_Google向GMail添加免费电话语音通话
  11. 思科二层冗余技术对比---PortChannel/StackWise/VSS/vPC
  12. 秀米排版,从入门到入土(一)
  13. html 字幕文件怎么打开,srt文件怎么打开
  14. SMT表面贴片工序详解
  15. 网络对抗技术——实验四:恶意代码技术
  16. Pytorch:RNN、LSTM、GRU 构建人名分类器(one-hot版本、Embedding嵌入层版本)
  17. 2022年国家高新技术企业认定最新规定及国家高新补助重点,补贴20-50万
  18. Apache Spark在海致大数据平台中的优化实践
  19. CFD软件开发漫谈-1: 整体规划
  20. android概述和环境搭建

热门文章

  1. 为什么Web前端薪资如此高呢?总结了这4个原因
  2. 申请数据库资源池的三种方式(Map,properties)
  3. 坚果nuts 加速 官网_quot;如果你不吃坚果,你就是坚果(傻瓜)!quot;
  4. U - 计算长方体、四棱锥的表面积和体积
  5. html怎么设置视频为背景图片,如何给视频加上背景图片
  6. mysql 查询开始时间和结束时间是一个月的数据sql
  7. php gethostbyname ipv6,支持IPV6方法
  8. 微信开放平台错误码大全
  9. 论文参考文献正确插入方法 (一)
  10. excel数据导入matlab失败,Excel数据导入matlab