当前位置: 首页 > news >正文

爬虫工作量由小到大的思维转变---<第三十四章 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

登录成功!

相关文章:

  • Docker 数据持久化的三种方式
  • JS的this机制
  • 【面试题】写一个睡眠函数
  • leetcode-2.两数相加
  • 【数据倾斜笔记】
  • Pandas中concat的用法
  • JavaScript:正则表达式
  • 【线性代数】决定张成空间的最少向量线性无关吗?
  • uniapp+echarts开发APP版本教程
  • 5.2 显示窗口的内容(二)
  • JUnit 5和Mockito单元测试
  • css 用多个阴影做出光斑投影的效果 box-shadow
  • 学习笔记-MyBatis的工作原理。
  • 求解拍频的信号特征
  • LeetCode1491. Average Salary Excluding the Minimum and Maximum Salary
  • CSS 三角实现
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • input实现文字超出省略号功能
  • JavaWeb(学习笔记二)
  • Joomla 2.x, 3.x useful code cheatsheet
  • python docx文档转html页面
  • Xmanager 远程桌面 CentOS 7
  • 复杂数据处理
  • 工程优化暨babel升级小记
  • 基于遗传算法的优化问题求解
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 使用 Docker 部署 Spring Boot项目
  • 物联网链路协议
  • 移动端解决方案学习记录
  • 在electron中实现跨域请求,无需更改服务器端设置
  • 从如何停掉 Promise 链说起
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • (day 12)JavaScript学习笔记(数组3)
  • (LeetCode C++)盛最多水的容器
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (五)c52学习之旅-静态数码管
  • (五)Python 垃圾回收机制
  • (新)网络工程师考点串讲与真题详解
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转) ns2/nam与nam实现相关的文件
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .NET下ASPX编程的几个小问题
  • .NET中 MVC 工厂模式浅析
  • .NET中winform传递参数至Url并获得返回值或文件
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • @Transactional 竟也能解决分布式事务?
  • [1] 平面(Plane)图形的生成算法
  • [Android Studio] 开发Java 程序
  • [Angular 基础] - 数据绑定(databinding)
  • [BT]BUUCTF刷题第8天(3.26)
  • [C#] 我的log4net使用手册