爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapyd+Gerapy>

本文主要是介绍爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapyd+Gerapy>,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:

scrapy-redis没被部署,感觉讲起来很无力;因为实在编不出一个能让scrapy-redis发挥用武之地的案子;所以,索性直接先把分布式爬虫的部署问题给讲清楚!! 然后,曲线救国式地再在部署的服务器上,讲scrapy redis我感觉这样才好!

正文:

现在还有不少人在用scrapy web进行爬虫管理,但我个人感觉是那玩意儿BUG挺多的;且不灵光!

而Gerapy和scrapy web都是基于scrapyd的,所以 我直接省去了去讲scrapy web的知识点,推荐这个Gerapy;当然了,还有其他的,  例如:"crawlab",也是用于爬虫管理的,你就忽悠忽悠老板,措辞我都给你想好了:' 这玩意儿老好了,真的,先进单位都在用~嘎嘎香;谁用谁知道,贼牛逼!! '-----让他给你买!

比较:Gerapy 和 Scrapy Web

都是用于构建和管理 Scrapy 爬虫项目的工具,但它们有一些区别

  • 1. 功能和用途:Gerapy 是一个全面的 Scrapy 爬虫项目管理平台,提供了完整的爬虫项目管理、任务调度、监控和部署等功能。它不仅提供了界面化的项目管理工具,还支持多用户、权限管理和插件扩展等特性。而 Scrapy Web 是一个基于 Scrapy 的 Web 组件,可为 Scrapy 提供一个可视化界面,用于监控和管理爬虫的运行状态。
  • 2. 界面和可视化:Gerapy 提供了强大的 Web 界面,以图形化和交互式的方式来管理爬虫项目。它提供了项目、爬虫、调度、日志等各个方面的可视化管理界面。而 Scrapy Web 则主要关注在爬虫任务的监控和管理方面,提供了简化的可视化界面来查看爬虫的运行状态、调度任务以及查看日志等。
  • 3. 插件扩展:Gerapy 支持插件扩展,你可以为 Gerapy 添加自定义的功能和工具。它提供了开放的插件接口,允许你开发和集成自己的插件。而 Scrapy Web 没有插件扩展的功能,主要关注于提供爬虫任务的可视化管理和监控功能。
  • 总结来说,Gerapy 是一个功能强大、全面的 Scrapy 爬虫项目管理平台,提供了项目管理、任务调度、监控和部署等多个方面的功能,并支持插件扩展。Scrapy Web 则更专注于提供可视化界面来监控和管理爬虫的运行状态和调度任务.

废话不多说,讲我们的:

安装:

1.创建项目文件(这我就不废话了,mkdir一个文件夹)

2.配置虚拟环境(这我也不废话了,搞个环境依赖包)

3.安装依赖包(python随便升,没问题;我目前py==3.11.X)

pip install scrapy==2.9.0  pip install scrapyd#可自定义要不要按scrapy-redis,上面两个就是环境必须给他装的! 我推荐scrapy装2.9.0,
#别升高了!!原因我前文讲过pip install gerapy#pip install gerapy_auto_extractor
  • 前文链接:爬虫工作量由小到大的思维转变---<第三十三章 Scrapy Redis 23年8月5日后会遇到的bug)>-CSDN博客
  • 关于:gerapy_auto_extractor(要不要安,随便你们,这个无所谓的)
    • gerapy_auto_extractors 是一个用于实现自动提取器(Auto Extractors)功能的 Python 包。它是基于 Gerapy 平台(一个用于构建和管理 Scrapy 爬虫项目的框架)开发的一个插件。
    • 自动提取器是一种用于从网页中自动提取数据的功能。通过配置自动提取器规则,可以指定数据应该如何从 HTML 或其他文档中提取出来,而无需手动编写解析规则。gerapy_auto_extractors 提供了一套规则配置和数据提取的功能,以方便开发人员通过简单的配置来直接提取数据。
    • 使用 gerapy_auto_extractors,你可以轻松地配置自动提取器规则,而无需手动编写 XPath 或其他解析规则。该包还支持在 Gerapy Web 界面中进行规则配置和管理。
    • ps:为了使用 gerapy_auto_extractors,你需要首先安装 Gerapy 平台,并将 gerapy_auto_extractors 作为其插件进行安装和启用。

4.初始化gerapy

进入到项目文件夹内,控制台:

cd <你的项目文件夹内>
gerapy init

初始化完成,出现:

5.创建`数据库迁移文件`

在文件内部:
gerapy migrate

       出现对应的:表示成功!

讲解:

gerapy migrate 命令的主要用途是将数据库结构与 Gerapy 项目的模型定义同步。它提供了以下几个重要的用途和好处:

  1. 数据库迁移管理:gerapy migrate 命令使得数据库迁移变得简单和可控。通过捕捉模型定义的变化,并生成对应的迁移文件,可以轻松地管理数据库表结构的变更和演进。
  2. 模型变更应用:当你在 Gerapy 项目中创建、修改或删除模型(Model)定义时,gerapy migrate 命令可以自动应用这些变更到数据库中。它负责生成并执行相应的迁移操作,确保表结构与模型定义保持一致。
  3. 数据库版本控制:通过 gerapy migrate 命令生成的迁移文件,可以方便地进行数据库版本控制。你可以使用 Git 或其他版本控制系统来管理这些迁移文件,以便记录和追踪数据库结构的变化。
  4. 多环境部署:针对不同的环境(例如开发环境、测试环境、生产环境),你可以使用 gerapy migrate 命令为每个环境执行相应的数据库迁移操作。这样可以确保不同环境的数据库表结构与模型定义保持一致,避免了手动维护多个数据库的麻烦。

6.初始化Gerapy 平台的管理员账户

gerapy initadmin

他会自动生成一个临时的管理员账户,如图:

7.启动 Web 服务器

gerapy runserver 0.0.0.0:8000   #接受全部的ip,端口自定义
#或者gerapy runserver 127.0.0.1:8080   #在本地地址绑定到端口 8080 上

图例:

8.登录gerapy

网络页面(没服务器部署前,用本地127.0.0.1登录):

在浏览器输入: 127.0.0.1:8000

弹出页面:

(第一次登录)输入用户名:admin   密码:admin

登录成功!

这篇关于爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapyd+Gerapy>的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/552347

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题

《Python爬虫HTTPS使用requests,httpx,aiohttp实战中的证书异步等问题》在爬虫工程里,“HTTPS”是绕不开的话题,HTTPS为传输加密提供保护,同时也给爬虫带来证书校验、... 目录一、核心问题与优先级检查(先问三件事)二、基础示例:requests 与证书处理三、高并发选型:

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Linux部署中的文件大小写问题的解决方案

《Linux部署中的文件大小写问题的解决方案》在本地开发环境(Windows/macOS)一切正常,但部署到Linux服务器后出现模块加载错误,核心原因是Linux文件系统严格区分大小写,所以本文给大... 目录问题背景解决方案配置要求问题背景在本地开发环境(Windows/MACOS)一切正常,但部署到

使用IDEA部署Docker应用指南分享

《使用IDEA部署Docker应用指南分享》本文介绍了使用IDEA部署Docker应用的四步流程:创建Dockerfile、配置IDEADocker连接、设置运行调试环境、构建运行镜像,并强调需准备本... 目录一、创建 dockerfile 配置文件二、配置 IDEA 的 Docker 连接三、配置 Do

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序