在 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: debug

domains:
    - 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"

Before
	volumes:
  		- ./config:/home/app/config

After
	volumes:
  		- .\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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值