使用Scrapyd部署爬虫

一、Scrapyd简介和安装
1、认识scrapyd
按一般的部署方法,部署分布式爬虫需要每个服务器复制代码、用命令行运行,非常繁杂,管理起来也不方便,如爬虫版本更新,可能需要所有服务器进行具体代码的更新。另外,用户也不能方便地查看各个爬虫的运行情况。
Scrapyd:一个部署和运行Scrapy爬虫的应用程序,它使用户能在网页查看正在执行的任务,能通过JSON API部署(上传)工程和控制工程中的爬虫,如新建爬虫任务、终止爬虫任务等。
2、安装
命令行安装:

pip install scrapyd

运行Scrapyd:

scrapyd

3、查看
默认情况下,Scrapyd监听0.0.0.0:6800端口,用浏览器打开:http://localhost:6800/,就能看到Scrapyd已经成功运行。单机页面的Jobs查看已经部署的爬虫,单击Logs查看日志信息。
在这里插入图片描述
4、如果连接成功先关闭服务,自己在非C盘下新建一个文件夹,名称自定义如:ScrapydProject
然后进入该文件夹,shift+右键 选择在此处打开命令行工具,输入scrapyd命令,执行完成后会在该文件夹中新建一个dbs空文件夹,用来存放部署到scrapyd服务上的项目的数据库文件。
在这里插入图片描述5、安装scrapyd-client模块。scrapyd-client模块是专门打包scrapy爬虫项目到scrapyd服务中的,进入虚拟环境,执行命令

pip install scrapyd-client

将本地Scrapy项目中的scrapy.cfg配置文件进行配置:

[settings]
default = lianjia01.settings
[deploy]
url = http://localhost:6800/ project = lianjia01

安装完成后,在虚拟环境的scripts中会出现scrapyd-deploy无后缀文件,这个scrapyd-deploy无后缀文件是启动文件,在Linux系统下可以运行,在windows下是不能运行的,所以我们需要编辑一下使其在windows可以运行。
6、进入Python的scripts目录,创建scrapy.bat、scrapyd-deploy.bat两个文件。右键选择编辑,输入一下配置:

@echo off
D:\Python\Python37-32\python.exe D:\Python\Python37-32\Scripts\scrapy-deploy %*

@echo off
D:\Python\Python37-32\python.exe D:\Python\Python37-32\Scripts\scrapy-deploy %*

7、进入虚拟环境,进入到你的爬虫项目中,进入带有scrapy.cfg文件的目录,执行scrapyd-deploy,测试scrapyd-deploy是否可以运行,如果出现以下则正常
在这里插入图片描述
如果想启动爬虫,可以输入:

curl http://localhost:6800/schedule.json -d project=lianjia01 -d spider=lianjia

在这里插入图片描述
在浏览器打开:http://localhost:6800/,查看爬虫运行情况:
在这里插入图片描述
如果想停止一个爬虫的命令为:

curl http://localhost:6800/cancel.json -d project=lianjia01 -d job=JOB_ID

在这里插入图片描述

Scrapy去重方案
使用scrapy.Request方法时,可以设置dont_filter参数,开启或关闭Scrapy对request的URL去重:

yield scrapy.Request(url,callback=self.parse,dont_filter=False)

这是Scrapy默认的URL去重方式,它实质是通过Python的set()集合的数据结构在内存中实现去重。
当服务器宕机或强制关闭爬虫时,就无法保存request状态。
另外有一个明显的缺点:随着URL的增多,占用内存会越来越多,长时间执行大型爬虫任务时,服务器内存很有可能被占满。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值