如何使用 ScrapydWeb 管理 Scrapy 项目
在本文中,我将向您介绍如何设置和使用 ScrapydWeb 来部署您的蜘蛛、监控它们的性能并安排任务,所有这些都可以在一个地方完成。从安装到扩展项目,我将涵盖您需要了解的一切,让您的工作流程更顺畅、更高效。
什么是 ScrapydWeb?
ScrapydWeb 是专为管理 Scrapyd 集群而设计的网络界面。Scrapyd 本身就是一款功能强大的工具,用于在分布式环境中运行和管理 Scrapy 蜘蛛。Scrapyd 在后台运行,处理不同服务器上蜘蛛的执行,而 ScrapydWeb 则提供了一个用户友好界面,用于与 Scrapyd 服务器交互。有了 ScrapydWeb,您可以直接从浏览器轻松地实时监控、控制和管理 Scrapy 蜘蛛。
为什么使用 ScrapydWeb?
虽然 Scrapyd 的 CLI 界面非常有用,但可能比较麻烦,尤其是在管理多个服务器和蜘蛛时。ScrapydWeb 有以下优点:
- 集中管理:无论您有多少 Scrapyd 服务器,都可以从单一界面管理所有 Scrapy 项目。
- 实时监控:直接从网络界面查看实时任务状态、日志和统计数据。
- 日程安排:安排蜘蛛在特定时间和间隔运行。
- 多服务器管理: 在单个 ScrapydWeb 实例中管理多个 Scrapyd 节点(服务器)。
ScrapydWeb 的主要功能
ScrapydWeb 提供了多项功能,可让管理 Scrapy 项目更加轻松:
- 任务监测:查看刮削作业的实时更新,包括日志和性能指标。
- 多节点集群管理:从一个界面管理多个 Scrapyd 服务器,无论它们是本地运行还是远程运行。
- 计划清除工作:安排蜘蛛在特定时间和频率运行。
- 移动模式:ScrapydWeb允许您通过移动设备管理服务器,从而实现随时随地访问。
- 详细工作统计:访问每个任务、项目和服务器的详细日志和统计信息。
- 警报:设置电子邮件、Slack 或 Telegram 通知,以获取有关作业状态、错误和性能的警报。
设置 ScrapydWeb
在开始使用 ScrapydWeb 之前,需要先在系统上安装并配置 Scrapyd 和 ScrapydWeb。下面是一份逐步指南,帮助你快速上手。
第 1 步:安装 Scrapyd 和 ScrapydWeb
ScrapydWeb 需要 Python 3 才能顺畅运行。继续之前,请确保系统已安装 Python。
要安装 Scrapyd、Scrapyd-Client(CLI 工具)和 ScrapydWeb,可以使用 pip:
pip3 install scrapyd scrapyd-client scrapydweb
安装完成后,就可以进行下一步了。
第 2 步:将 Scrapy 项目部署到 Scrapyd
现在,你需要将 Scrapy 项目部署到 Scrapyd 服务器。先启动 Scrapyd:
scrapyd
默认情况下,Scrapyd 通过 6800 端口运行。访问 Scrapyd 的方式如下 http://localhost:6800 在浏览器中。
接下来,将 Scrapy 项目连接到 Scrapyd 服务器。打开项目根目录下的 scrapy.cfg 文件,修改如下:
[settings]
default = product_scraper.settings
[deploy:local]
url = http://localhost:6800/
project = scraper
用 Scrapy 项目的设置替换 product_scraper.settings,并确保 url 设置为 Scrapyd 服务器地址(localhost:6800)。
使用 Scrapyd-Client 部署你的项目:
scrapyd-deploy local -p scraper
部署完成后,您应该会在 Scrapyd 网页界面(http://localhost:6800/)上看到 Scrapy 项目的列表。
第 3 步:启动 ScrapydWeb 服务器
要启动 ScrapydWeb,请运行以下命令:
废网页
这将在 http://localhost:5000/ 默认情况下。在浏览器中打开此 URL,就能看到 ScrapydWeb 界面。
第 4 步:配置 ScrapydWeb
启动 ScrapydWeb 服务器后,需要对其进行配置,以便连接到 Scrapyd 服务器。打开项目根目录下的 scrapydweb_settings_v11.py 文件,用 Scrapyd 服务器地址更新 SCRAPYD_SERVERS 列表:
报废服务器 = [
"127.0.0.1:6800",
]
完成后,重启 ScrapydWeb 服务器。现在你可以通过 ScrapydWeb 界面管理你的 Scrapyd 服务器。
管理多个 Scrapyd 服务器
随着刮削需求的增长,您可能希望扩展和使用多个 Scrapyd 服务器。ScrapydWeb 可让您在一个地方轻松管理多个服务器。
要在不同端口上设置另一个 Scrapyd 服务器,请按照以下步骤操作:
在第二个项目的根目录下创建一个新的 scrapyd.conf 文件,指定一个新端口(如 6802):
[废料]
http_port = 6802
更新新项目中的 scrapy.cfg 文件,使其指向这个新端口:
[settings]
default = product_scraper.settings
[deploy:local]
url = http://localhost:6802/
project = 产品刮板
使用 Scrapyd-Client 部署新项目:
scrapyd-deploy local -p product_scraper
更新第一个项目中的 scrapydweb_settings_v11.py 文件,添加新服务器:
报废服务器 = [
"127.0.0.1:6800",
"127.0.0.1:6802",
]
现在,当您打开 ScrapydWeb 时,会看到两个服务器都在列表中。您可以在同一个界面上管理和部署两个服务器的蜘蛛。
运行和调度 Scrapy 蜘蛛
使用 ScrapydWeb,您可以轻松地在不同服务器上运行和调度蜘蛛。
运行蜘蛛
要运行蜘蛛,请按照以下步骤操作:
- 打开 ScrapydWeb (http://localhost:5000/) 并转到 服务器 标签。
- 选择包含所需项目的 Scrapyd 服务器。
- 点击 运行蜘蛛 选项卡,然后选择要运行的蜘蛛。
- 您可以通过切换 设置和参数 开关。
- 点击 检查 CMD然后点击 运行蜘蛛 来执行蜘蛛。
你会看到蜘蛛在 ScrapydWeb 中的状态变为 "正在运行"。
安排蜘蛛
安排蜘蛛在特定时间或间隔运行:
- 从 服务器 标签。
- 点击 运行蜘蛛 选项卡,然后选择蜘蛛。
- 切换 定时器任务 开关来设置时间表。
- 您可以指定蜘蛛的开始和结束日期,以及运行间隔时间。
- 点击 检查 CMD然后点击 添加任务 来安排蜘蛛。
查看蜘蛛日志和统计
ScrapydWeb 可让您轻松访问蜘蛛日志和统计数据。您可以直接通过界面监控刮擦任务的性能和状态。
查看日志和统计数据:
-
- 前往 日志 部分。
- 选择要检查的项目和蜘蛛。
- 您将看到蜘蛛的执行日志,以及详细的抓取统计数据。
企业级搜索的强大替代方案
虽然 ScrapydWeb 非常适合管理自托管的 Scrapy 集群,但有时您需要一个真正可扩展、全面管理并能应对 IP 轮换和全球地理定位等高级挑战的解决方案。
例如,我曾经需要从一个知名的国际市场上抓取数千个产品列表,同时避免 IP 禁止并确保数据质量。使用 Bright Data 的 Scraper API,我能够无缝地 轮换 IP, 解决验证码问题这样,我就无需担心基础架构或本地部署问题,就能从数据库中提取干净、结构化的数据。这为我节省了大量时间,让我可以完全专注于数据提取逻辑。
如果您的项目越来越复杂或数量越来越多、 Bright Data 提供了一个出色、可靠的替代方案,非常适合大型、高频率的刮擦任务和对合规性敏感的使用案例。
与上述任何供应商均无关联!
结论
ScrapydWeb 是一款管理 Scrapy 项目和 Scrapyd 服务器的便捷工具。它通过一个易于使用的网络界面简化了部署、监控和调度蜘蛛的过程。无论您使用的是一台服务器还是多台服务器,ScrapydWeb 都能帮助您跟踪项目,确保刮擦任务顺利进行。
有了 ScrapydWeb,扩展网络刮擦项目变得更加容易。它的实时监控、调度选项和详细日志使其成为所有使用 Scrapy 的人的必备工具,为您节省了管理多个服务器和任务的时间和精力。

