Scrapy框架-通过Scrapyd来部署爬虫

简介: 前言爬虫写完了,很多时候本机部署就可以了,但是总有需要部署到服务器的需求,网上的文章也比较多,复制的也比较多,从下午3点钟摸索到晚上22点,这里记录一下。

前言

爬虫写完了,很多时候本机部署就可以了,但是总有需要部署到服务器的需求,网上的文章也比较多,复制的也比较多,从下午3点钟摸索到晚上22点,这里记录一下。


环境情况

  • 我的系统是Deepin
  • 开发环境也是Deepin,python 环境用的是Anaconda建立的虚拟环境(python3.6)
  • 部署系统是本机的Deepin
  • 部署环境由于在本机部署,所以跟开发环境一致(就是这里有个坑)
  • 用到的服务是scrapyd

参考文章

网上对于scrapy部署的文章真是很多,一搜就很多页结果,但是我看很多都是复制粘贴,命令错了也没改。我的是综合多个文章来实际执行的,这里列一下我看过的文章:


介绍

Scrapyd是scrapinghub官方提供的爬虫管理、部署、监控的方案,文档传送


安装scrapyd

对于它的安装,网上的说法层出不穷,有可能是老版本吧?

我的安装很简单,在本机虚拟环境中 pip isntall scrapyd,就完成了

没有安装scrapyd-client也没有安装scrapyd-deploy,就是这么简简单单。


使用

它的使用有3个步骤

1、为了检查是否安装正确,在电脑任意一个地方打开终端(再次强调,我的电脑系统是linux),输入scrapyd,如果没有报错,请打开 http://localhost:6800 ,看到如下画面则代表服务启动成功,看到启动成功后就可以关闭了。

输入图片说明

2、到scrapy工程目录内打开的scrapy.cfg文件,将原代码改为:

[settings]
default = future.settings

[deploy]
url = http://localhost:6800/
project = Gxrcpro

保存即可

如果是在服务器上面部署(重要,服务器跟本机设置不同),除了改bind端口为0.0.0.0外

bind端口更改地址:

anaconda3/envs/pspiders/lib/python3.6/site-packages/scrapyd

里面有个名为default_scrapyd.conf的文件,其中有一个设置是:

bind_address = 127.0.0.1

要将它改为 0.0.0.0

还需要

[settings]
default = future.settings

[deploy]
url = http://0.0.0.0:6800/
project = Gxrcpro

设置成0.0.0.0,否则会提示name or service not known

3、由于之前在本地随意目录下打开scrapyd,导致爬虫启动失败,后来经过群友[wally小馒头]的帮助才知道失败是因为虚拟环境的问题,这次需要用到pycharm。

在pycharm里面打开teminal,然后输入命令scrapyd

接着看到服务启动,通过teminal左上角的绿色+号打开新的teminal窗口,在窗口输入命令:

scrapyd-deploy  -p Gxrcpro

这里的Gxrc和Gxrcpro跟上面的cfg文件设置有关

如果收到一下信息就代表这次命令成功执行:

Packing version 1516456705
Deploying to project "Gxrcpro" in http://localhost:6800/addversion.json
Server response (200):
{"node_name": "ranbo-PC", "status": "ok", "project": "Gxrcpro", "version": "1516456705", "spiders": 1}

接着执行启动爬虫的命令:

curl http://localhost:6800/schedule.json -d project=Gxrcpro -d spider=gxrc

这里的Gxrcpro跟上面的cfg文件设置有关,而gxrc是你写代码时候填写的爬虫名字

收到如下信息:

{"node_name": "ranbo-PC", "status": "ok", "jobid": "5a6c4016fdec11e7ad5800e070785d37"}

则代表这次成功启动爬虫,可以通过localhost:6800/Jobs来查看爬虫运行基本情况。

输入图片说明

通过log可以看到爬虫的信息,如果是正在跑数据,则应该可以在log里面看到爬出来的数据;如果是出错,则会看到报错信息(之前我的环境路径不对,就是能启动,但是报错,爬虫就停止了)

输入图片说明
目录
相关文章
|
5天前
|
数据采集 Web App开发 机器学习/深度学习
Selenium爬虫部署七大常见错误及修复方案:从踩坑到避坑的实战指南
本文揭秘Selenium爬虫常见“翻车”原因,涵盖浏览器闪退、元素定位失败、版本冲突、验证码识别等七大高频问题,结合实战案例与解决方案,助你打造稳定高效的自动化爬虫系统,实现从“能用”到“好用”的跨越。
117 0
|
6月前
|
数据采集 存储 数据可视化
分布式爬虫框架Scrapy-Redis实战指南
本文介绍如何使用Scrapy-Redis构建分布式爬虫系统,采集携程平台上热门城市的酒店价格与评价信息。通过代理IP、Cookie和User-Agent设置规避反爬策略,实现高效数据抓取。结合价格动态趋势分析,助力酒店业优化市场策略、提升服务质量。技术架构涵盖Scrapy-Redis核心调度、代理中间件及数据解析存储,提供完整的技术路线图与代码示例。
601 0
分布式爬虫框架Scrapy-Redis实战指南
|
5月前
|
数据采集 前端开发 JavaScript
Scrapy结合Selenium实现搜索点击爬虫的最佳实践
Scrapy结合Selenium实现搜索点击爬虫的最佳实践
|
4月前
|
数据采集 存储 监控
Scrapy框架下地图爬虫的进度监控与优化策略
Scrapy框架下地图爬虫的进度监控与优化策略
|
5月前
|
数据采集 存储 Web App开发
轻量级爬虫框架Feapder入门:快速搭建企业级数据管道
本教程基于Feapder框架,讲解如何构建轻量级爬虫采集豆瓣电影数据。通过配置代理IP、Cookie与User-Agent,实现企业级数据管道能力,包括动态请求与信息提取(如电影名称、导演、演员等)。适合具备Python基础及爬虫原理知识的读者,提供从环境搭建到代码实现的完整流程,并分析常见错误与解决方法,助力高效开发。
255 1
轻量级爬虫框架Feapder入门:快速搭建企业级数据管道
|
5月前
|
数据采集 消息中间件 Kubernetes
容器化爬虫部署:基于K8s的任务调度与自动扩缩容设计
随着业务复杂度提升,传统定时任务和手工扩缩容难以满足高并发与实时性需求。本文对比两种基于 Kubernetes 的爬虫调度与扩缩容方案:CronJob+HPA 和 KEDA。从调度灵活性、扩缩容粒度、实现难度等维度分析,并提供 YAML+Python 示例。方案 A(CronJob+HPA)适合固定定时任务,配置简单;方案 B(KEDA)支持事件驱动,适合高并发与异步触发场景。根据实际需求可混合使用,优化资源利用与效率。
179 4
|
10月前
|
数据采集 中间件 API
在Scrapy爬虫中应用Crawlera进行反爬虫策略
在Scrapy爬虫中应用Crawlera进行反爬虫策略
|
10月前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
427 6
|
11月前
|
数据采集 中间件 开发者
Scrapy爬虫框架-自定义中间件
Scrapy爬虫框架-自定义中间件
172 1
|
11月前
|
数据采集 中间件 Python
Scrapy爬虫框架-通过Cookies模拟自动登录
Scrapy爬虫框架-通过Cookies模拟自动登录
357 0