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

在 Windows 上使用 Docker 运行 Elastic Open Crawler

作者:来自 Elastic Matt Nowzari

了解如何使用 Docker 在 Windows 环境中运行 Open Crawler。

了解将数据摄取到 Elasticsearch 的不同方式,并深入实践示例,尝试一些新方法。

Elasticsearch 拥有大量新功能,助你为特定场景构建最佳搜索方案。立即开始免费试用。


Open Crawler 虽然没有官方 Windows 支持,但这并不意味着它不能在 Windows 上运行!在这篇博客中,我们将探索如何使用 Docker 在你的 Windows 环境中启动并运行 Open Crawler。

我们将介绍两种在系统中下载并运行 Open Crawler 的方法。这两种方法都依赖于 Docker,步骤与 Open Crawler 官方文档中的说明非常相似。但我们也会指出你需要对命令或文件进行的(非常小的)修改,以便更顺利地部署 Open Crawler!

前提条件

在开始之前,请确保你的 Windows 设备已安装以下内容:

  • git

  • Docker Desktop

  • Docker Desktop CLI(随 Docker Desktop 一起提供)

  • Docker Compose(随 Docker Desktop 一起提供)

你可以在这里了解更多关于安装 Docker Desktop 的信息。

此外,本博客默认使用 Open Crawler 0.3.0 或更高版本。使用带有 :latest 标签的 Docker 镜像,在撰写本文时应至少为 0.3.0 版本。

创建配置 YAML 文件

在开始运行 Open Crawler 的不同方法之前,你需要先创建一个基本的配置文件供 Open Crawler 使用。

使用你喜欢的文本编辑器,新建一个名为 crawl-config.yml 的文件,并填入以下内容,然后将其保存在一个方便访问的位置。

output_sink: console
log_level: debugdomains:- url: "https://www.speedhunters.com"max_redirects: 2

通过 Docker 镜像直接运行 Open Crawler

步骤 1:拉取 Open Crawler Docker 镜像

首先,你需要将 Open Crawler 的 Docker 镜像下载到本地机器。docker pull 命令可以自动下载最新的 Docker 镜像。

在命令行终端中运行以下命令:

docker pull docker.elastic.co/integrations/crawler:latest

如果你对所有可用的 Open Crawler 版本感兴趣,或者想体验 Open Crawler 的快照版本,可以查看 Elastic 的 Docker 集成页面,了解所有可用的镜像。

命令执行完成后,你可以运行 docker images 命令,确认该镜像已存在于本地镜像列表中:

PS C:\Users\Matt> docker images
REPOSITORY                                              TAG                IMAGE ID       CREATED        SIZE
docker.elastic.co/integrations/crawler                  latest             5d34a4f6520c   1 month ago   503MB

第 2 步:执行抓取

现在已经创建了配置 YAML 文件,你可以使用它来执行抓取任务!

在保存 crawl-config.yml 的目录中,运行以下命令:

docker run \-v .\crawl-config.yml:/crawl-config.yml \-it docker.elastic.co/integrations/crawler:latest jruby bin/crawler crawl /crawl-config.yml

请注意命令中卷(-v)参数使用的 Windows 风格反斜杠和 Unix 风格正斜杠。冒号左边是 Windows 风格路径(带反斜杠),右边是带正斜杠的路径。

  -v .\crawl-config.yml:/crawl-config.yml

-v 参数将本地文件(.\crawl-config.yml)映射到容器内的路径(/crawl-config.yml)。

使用 docker-compose 运行 Open Crawler

步骤 1:克隆仓库

使用 git 将 Open Crawler 仓库克隆到你选择的目录:

git clone git@github.com:elastic/crawler.git

提示:别忘了,你也可以随时 fork 这个仓库!

步骤 2:将配置文件复制到 config 文件夹

在爬虫仓库的顶层目录中,有一个名为 config 的文件夹。将你创建的配置 YAML 文件 crawl-config.yml 复制到该目录中。

步骤 3:修改 docker-compose 文件

在爬虫仓库的顶层目录,你会看到一个名为 docker-compose.yml 的文件。你需要确保该文件中 volumes 下的本地配置目录路径符合 Windows 格式。

使用你喜欢的文本编辑器打开 docker-compose.yml,将其中的 "./config" 改为 ".\config"

Beforevolumes:- ./config:/home/app/configAftervolumes:- .\config:/home/app/config

该 volumes 配置允许 Docker 将你本地仓库的 config 文件夹挂载到 Docker 容器中,使容器能够访问并使用你的配置 YAML。

冒号左侧是本地挂载路径(因此必须符合 Windows 格式),右侧是容器内的目标路径,必须符合 Unix 格式。

步骤 4:启动容器

运行以下命令启动 Open Crawler 容器:

docker-compose up -d

你可以在 Docker Desktop 的 Containers 页面确认,或者运行以下命令确认容器确实正在运行:

docker ps -a

步骤 5:执行抓取命令

最后,你可以执行抓取!以下命令将在刚启动的容器中开始抓取:

docker exec -it crawler bin/crawler crawl config/my-config.yml

这里命令只使用了 Unix 风格的正斜杠,因为它是在调用容器内部的 Open Crawler CLI。

命令开始运行后,你应该能看到抓取成功的输出!🎉

PS C:\Users\Matt> docker exec -it crawler bin/crawler crawl config/crawler.yml
[crawl:684739e769ea23aa2f4aaeb5] [primary] Initialized an in-memory URL queue for up to 10000 URLs
[crawl:684739e769ea23aa2f4aaeb5] [primary] Starting a crawl with the following configuration: <Crawler::API::Config: log_level=debug; event_logs=false; crawl_id=684739e769ea23aa2f4aaeb5; crawl_stage=primary; domains=[{:url=>"https://www.speedhunters.com"}]; domain_allowlist=[#<Crawler::Data::Domain:0x3d
...
...
binary_content_extraction_enabled=false; binary_content_extraction_mime_types=[]; default_encoding=UTF-8; compression_enabled=true; sitemap_discovery_disabled=false; head_requests_enabled=false>
[crawl:684739e769ea23aa2f4aaeb5] [primary] Starting the primary crawl with up to 10 parallel thread(s)...
[crawl:684739e769ea23aa2f4aaeb5] [primary] Crawl task progress: ...

以上控制台输出为简化版,但你应关注的主要日志行就在这里!

总结

如你所见,只要注意 Windows 路径格式,Open Crawler 的 Docker 工作流程就能兼容 Windows!只要 Windows 路径用反斜杠,Unix 路径用正斜杠,你就能让 Open Crawler 在 Windows 上顺利运行,效果与 Unix 环境相当。

现在你已经运行了 Open Crawler,可以查看仓库中的文档,了解如何根据需求配置 Open Crawler!

原文:Run Elastic Open Crawler in Windows with Docker - Elasticsearch Labs

http://www.lryc.cn/news/591355.html

相关文章:

  • Java爬虫与正则表达式——用正则来爬取数据
  • 利用deepspeed在Trainer下面微调大模型Qwen2.5-3B
  • 切比雪夫不等式的理解以及推导【超详细笔记】
  • 【Linux手册】缓冲区:深入浅出,从核心概念到实现逻辑
  • 2025年6月GESP(C++一级):假期阅读
  • 多线程--sem_wait(sem)特殊用法
  • 【原创】【图像算法】高精密电子仪器组装异常检测
  • 24、鸿蒙Harmony Next开发:不依赖UI组件的全局自定义弹出框 (openCustomDialog)
  • java之json转excel生成
  • AppTrace:重新定义免填邀请码,解锁用户裂变新高度
  • IMU噪声模型
  • JxBrowser 7.43.5 版本发布啦!
  • ubuntu 开启ssh踩坑之旅
  • 加速度传感器方向校准方法
  • 原生前端JavaScript/CSS与现代框架(Vue、React)的联系、区别与运行环境(精简版)
  • 关于用git上传远程库的一些常见命令使用和常见问题:
  • Python爬虫入门到实战(2)-selenium驱动浏览器
  • 静态住宅IP和节点有什么区别?哪种更适合你的需求?
  • Redis完全指南:从基础到实战(含缓存问题、布隆过滤器、持久化及Spring Boot集成)
  • redis速记
  • 【WPF】WPF 自定义控件之依赖属性
  • springboot打包二次压缩Excel导致损坏
  • 【Linux基础知识系列】第五十四篇 - 网络协议基础:TCP/IP
  • 深入GPU硬件架构及运行机制
  • 鸿蒙UI自动化测试框架Hypium的使用指南
  • springboot跨域问题 和 401
  • 解锁数据分析:从基础概念到核心指标的全面指南
  • 数据分析:从数据到决策的核心逻辑与实践指南
  • 电脑DLL错误修复dll微软运行库工具修复dll缺失找不到dll等问题,dll免费修复工具
  • Servlet概述