爬虫工作量由小到大的思维转变---<第四十四章 Scrapyd 用gerapy管理多台机器爬虫>

前言:

之前讲过关于如何在gerapy中部署本地爬虫,

爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapyd+Gerapy>_gerapy如何登录-CSDN博客

爬虫工作量由小到大的思维转变---<第三十五章 Scrapy 的scrapyd+Gerapy 部署爬虫项目>_scrapy 部署到gerapy-CSDN博客

这次讲讲,如何把不同服务器上的爬虫部署到gerapy上面!!!

正文:

要让 Gerapy 管理两台电脑上的爬虫,需要保证 Gerapy 能够访问这两台电脑上运行的 Scrapyd 服务。默认情况下,Scrapyd 绑定在 127.0.0.1 上,这意味着它只监听来自本地机器的请求。要使其能够接受远程机器(如 Gerapy 所在机器)的请求,需要修改 Scrapyd 的配置以便它绑定在一个外部可访问的 IP 地址或 0.0.0.0(意味着监听所有可用的网络接口)。

​​​​​​​

步骤:

1.修改 Scrapyd 配置文件

(默认位置在 /etc/scrapyd/scrapyd.conf,如果不存在,可能需要在 Scrapyd 安装目录下手动创建一个)。

在单独的项目文件夹里

1.虚拟环境里的scrapy.conf文件需要自己手动创建!
2.相关配置信息,如下:
[scrapyd]
# 配置部分开始

eggs_dir    = eggs
# eggs目录用于存储上传的Scrapy项目的egg包(Python的二进制分发格式)。
# 这些egg包是通过Scrapyd的API上传的,Scrapyd会从中运行Scrapy爬虫。

logs_dir    = logs
# 日志目录用于存储Scrapyd运行爬虫的日志文件。

items_dir   = items
# 存放爬取项目产生的数据文件(items)的目录。
# 这个目录通常在使用Scrapy的Feed exports时指定文件路径时使用。

jobs_to_keep = 5
# 指定Scrapyd服务在其数据库中保留已完成工作的数量。
# 当完成新的爬虫作业时,超出此数量的最旧记录将从数据库中删除。

dbs_dir     = dbs
# 存储Scrapyd使用的SQLite数据库的目录。
# 这些数据库包含了作业的状态信息和其他元数据。

bind_address = 192.168.2.1
# 绑定地址,指定Scrapyd监听的网络接口。
# 设为0.0.0.0表示监听所有网络接口,允许从任何机器访问Scrapyd服务。

http_port   = 6800
# 指定Scrapyd服务监听的HTTP端口号。
# 通过这个端口可以访问Scrapyd的Web界面和API。
3.保存的scrapyd.conf的文件位置:

放在与venv文件夹同级的地方,图例:

2.在 [scrapyd] 部分中,找到 bind_address 配置项,

将其修改为以下任一选项:

使其绑定在特定的外部 IP 地址上,如电脑 A 或 B 的 IP 地址。例如,对于电脑 A,可以设置为:bind_address = 192.168.2.1

或者,使其绑定在所有地址上:bind_address = 0.0.0.0

3.保存配置文件并重启 Scrapyd 服务以应用更改。

    1.重启scrapyd:

                1.找到 Scrapyd 进程ID:
tasklist | findstr scrapyd

               2.使用从上一步得到的进程ID,替换 <PID>:

taskkill /PID <PID> /F
图例:

        2.启动scrapyd

                cmd进入到里面,

E:\项目文件夹> venv\Scripts\activate  # 激活虚拟环境
(venv) E:\项目文件夹> scrapyd          # 启动 Scrapyd

可能会遇上的问题:

Failed to load application: 'gbk' codec can't decode byte 0x80 in position 27: illegal multibyte sequence

解决:
方法1:

设置python的编码格式(默认)为utf8

在启动虚拟环境后,

(venv) E:\项目名>set PYTHONUTF8=1

(venv) E:\项目名>scrapyd
2024-02-03T23:27:30+0800 [-] Loading E:\football\venv\Lib\site-packages\scrapyd\txapp.py...
2024-02-03T23:27:30+0800 [-] Basic authentication disabled as either `username` or `password` is unset
2024-02-03T23:27:30+0800 [-] Scrapyd web console available at http://192.168.2.6:6800/
2024-02-03T23:27:30+0800 [-] Loaded.
2024-02-03T23:27:30+0800 [twisted.application.app.AppLogger#info] twistd 22.10.0 (E:\football\venv\Scripts\python.exe 3.11.2) starting up.
2024-02-03T23:27:30+0800 [twisted.application.app.AppLogger#info] reactor class: twisted.internet.selectreactor.SelectReactor.
2024-02-03T23:27:30+0800 [-] Site starting on 6800
2024-02-03T23:27:30+0800 [twisted.web.server.Site#info] Starting factory <twisted.web.server.Site object at 0x00000248EC65C810>
2024-02-03T23:27:30+0800 [Launcher] Scrapyd 1.4.3 started: max_proc=96, runner='scrapyd.runner'
2024-02-03T23:27:41+0800 [twisted.python.log#info] "192.168.2.6" - - [03/Feb/2024:15:27:40 +0000] "GET / HTTP/1.1" 200 725 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
2024-02-03T23:27:41+0800 [twisted.python.log#info] "192.168.2.6" - - [03/Feb/2024:15:27:40 +0000] "GET /favicon.ico HTTP/1.1" 404 167 "http://192.168.2.6:6800/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"
2024-02-03T23:28:08+0800 [twisted.python.log#info] "192.168.2.6" - - [03/Feb/2024:15:28:07 +0000] "GET / HTTP/1.1" 200 725 "-" "python-requests/2.31.0"
2024-02-03T23:28:09+0800 [twisted.python.log#info] "192.168.2.6" - - [03/Feb/2024:15:28:09 +0000] "GET / HTTP/1.1" 200 725 "-" "python-requests/2.31.0"
2024-02-03T23:28:41+0800 [twisted.web.http.HTTPChannel#info] Timing out client: IPv4Address(type='TCP', host='192.168.2.6', port=10328)
2024-02-03T23:28:41+0800 [twisted.web.http.HTTPChannel#info] Timing out client: IPv4Address(type='TCP', host='192.168.2.6', port=10327)
方法2:​​​​​​​

4.在 Gerapy 的设置中,配置两台电脑上的 Scrapyd 服务地址。

这通常是通过添加或修改 Gerapy 的项目设置或直接通过其界面来完成的。需要输入电脑 A 和 B 的 IP 地址及端口号,如 http://192.168.2.1:6800http://192.168.2.2:6800

这样配置完成后,Gerapy 就应该能够管理这两台电脑上的爬虫了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/373279.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云计算市场分析

目录 一、云计算市场概述 1.1 概述 二、国外云计算厂商 2.1 亚马逊AWS 2.2 微软AzureAzure 2.3 Apple iCloud 三、国内云计算厂商 3.1 阿里云 3.2 腾讯云 3.3 华为云 3.4 百度智能云 一、云计算市场概述 1.1 概述 云计算从出现以来&#xff0c;其发展就非常迅速。以…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之QRCode组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之QRCode组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、QRCode组件 用于显示单个二维码的组件。 子组件 无。 接口 QRCode(value: st…

深入实战:ElasticSearch的Rest API与迭代器模式在高效查询中的应用

在我们公司&#xff0c;大多数Java开发工程师在项目中都有使用Elasticsearch的经验。通常&#xff0c;他们会通过引入第三方工具包或使用Elasticsearch Client等方式来进行数据查询。然而&#xff0c;当涉及到基于Elasticsearch Rest API的/_sql?formatjson接口时&#xff0c;…

【机器学习与自然语言处理】预训练 Pre-Training 各种经典方法的概念汇总

【NLP概念合集&#xff1a;一】预训练 Pre-Training&#xff0c;微调 Fine-Tuning 及其方法的概念区别 前言请看此正文预训练 Pre-Training无监督学习 unsupervised learning概念&#xff1a;标签PCA 主成分分析&#xff08;Principal Component Analysis&#xff09;降维算法L…

基于SSM的协同过滤技术的网上书城(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的协同过滤技术的网上书城&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Sp…

ElasticSearch查询语句用法

查询用法包括&#xff1a;match、match_phrase、multi_match、query_string、term 1.match 1.1 不同字段权重 如果需要为不同字段设置不同权重&#xff0c;可以考虑使用bool查询的should子句来组合多个match查询&#xff0c;并为每个match查询设置不同的权重 {"query&…

【python】绘制爱心图案

以下是一个简单的Python代码示例&#xff0c;它使用turtle模块绘制一个代表爱和情人节的心形图案。 首先&#xff0c;请确保计算机上安装了Python和turtle模块。然后&#xff0c;将以下代码保存到一个.py文件中&#xff0c;运行它就可以看到爱心图案的绘制过程。 import turt…

vue21 vue.set()方法

实例 <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>Vue监测数据改变的原理</title><!-- 引入Vue --><script type"text/javascript" src"../js/vue.js"></script></h…

酷开系统 | 拓展内容营销边界,酷开科技大屏价值全面升维

丰富的内容是智能大屏吸引消费者的关键。随着智能大屏各类垂直应用的增多&#xff0c;和长、短视频等多元内容的加入&#xff0c;使消费者的使用需求进一步激发和释放&#xff0c;这些流量的加入&#xff0c;也使大屏成为了营销的天然宝藏。酷开科技一直致力于OTT大屏营销&…

时序预测 | MATLAB实现基于CNN-LSTM-AdaBoost卷积长短期记忆网络结合AdaBoost时间序列预测

时序预测 | MATLAB实现基于CNN-LSTM-AdaBoost卷积长短期记忆网络结合AdaBoost时间序列预测 目录 时序预测 | MATLAB实现基于CNN-LSTM-AdaBoost卷积长短期记忆网络结合AdaBoost时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现基于CNN-LST…

1Maven分模块设计与开发

目录 1.1 介绍 1.2 实践 1.2.1模块进行拆分 1.3 总结 首先&#xff1a;Maven 是一款构建和管理 Java 项目的工具 1.1 介绍 所谓分模块设计&#xff0c;顾名思义指的就是我们在设计一个 Java 项目的时候&#xff0c;将一个 Java 项目拆分成多个模块进行开发。 1). 未分模…

C++之字符串

C风格字符串 字符串处理在程序中应用广泛&#xff0c;C风格字符串是以\0&#xff08;空字符&#xff09;来结尾的字符数组。对字符串进行操作的C函数定义在头文件<string.h>或中。常用的库函数如下&#xff1a; //字符检查函数(非修改式操作) size_t strlen( const char …

五、Redis之发布订阅及事务管理

5.1 发布订阅 5.1.1 Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 &#xff0c;以及订阅这个频道的三个客户端 —— client1 、client2 …

软件产品:软件平台与软件流程相依存

在工作之余经常有感而发&#xff0c;作一些方法论之类的思考。 1、研发的使命是什么&#xff1f; 研发的使命通常围绕以下几个核心要点&#xff1a;技术创新与领先&#xff1a;研发部门的首要任务是推动技术创新和科技领先&#xff0c;通过不断探索、研究新的技术、材料、工艺…

Pytorch卷积层原理和示例 nn.Conv1d卷积 nn.Conv2d卷积

内容列表 一&#xff0c;前提 二&#xff0c;卷积层原理 1.概念 2.作用 3. 卷积过程 三&#xff0c;nn.conv1d 1&#xff0c;函数定义&#xff1a; 2, 参数说明: 3,代码: 4, 分析计算过程 四&#xff0c;nn.conv2d 1, 函数定义 2, 参数&#xff1a; 3, 代码 4, 分析计算过程 …

QML用ListView实现带section的GridView

QML自带的GridView只能定义delegate&#xff0c;没有section&#xff0c;类似手机相册带时间分组标签的样式就没法做。最简单的方式就是组合ListViewGridView&#xff0c;或者ListViewFlow&#xff0c;但是嵌套View时&#xff0c;子级View一般是完全展开的&#xff0c;只显示该…

「递归算法」:二叉树剪枝

一、题目 给你二叉树的根结点 root &#xff0c;此外树的每个结点的值要么是 0 &#xff0c;要么是 1 。 返回移除了所有不包含 1 的子树的原二叉树。 节点 node 的子树为 node 本身加上所有 node 的后代。 示例 1&#xff1a; 输入&#xff1a;root [1,null,0,0,1] 输出&…

EasyX图形库学习(三、用easyX实现移动的小球、图片-加载、输出)

目录 图像输出 loadimage用于从文件中读取图片 putimage在当前设备上绘制指定图像。 图形界面中的小球与按钮控制 图像输出 在使用图像之前&#xff0c;需要定义一个变量(对象)&#xff0c;然后把图片加载进变量才能进行使用。 平时定义变量都是使用的基础数据类型&#x…

RISC-V工业级芯片公司匠芯创,宣布软件开发包SDK正式开源

近日&#xff0c;RISC-V芯片公司匠芯创宣布开源D21x系列工业级应用芯片软硬件开发包SDK。软件开发包涵盖了D21x开源代码、软件API库、开发手册文档、相关调试及烧录工具&#xff0c;并且提供多媒体中间件等多个SDK用例和应用 Demo示例&#xff0c;帮助企业和个人开发者快速上手…

C++ dfs 与图有关的知识(四十七)【第七篇】

今天我们接着来学习树上搜索&#xff08;dfs深度优先搜索&#xff09; 1.树的深度与子树大小 树的深度&#xff1a;规定根结点是树的第一层&#xff0c;树根的孩子结点是树的第二层&#xff0c;以此类推&#xff0c;树的深度就是结点的最大层数。 根据定义&#xff0c;如果我们…