在 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.pswp.cn/web/89423.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/89423.shtml
英文地址,請注明出處:http://en.pswp.cn/web/89423.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS高級開發工程師面試——RunTime

iOS高級開發工程師面試——RunTime 一、簡介 二、介紹下 RunTime 的內存模型(isa、對象、類、metaclass、結構體的存儲信息等) 對象 類 三、為什么要設計 metaclass ? 四、class_copyIvarList & class_copyPropertyList區別? 五、class_rw_t 和 class_ro_t 的區別? 六…

實現分頁查詢

分頁查詢分頁查詢語句項目中添加分頁功能按鈕設置前后端代碼功能實現分頁查詢語句 限制查詢的 sql 語句&#xff1a; select * from student limit 0,4sql 查詢結果如下&#xff1a; 分頁查詢的每一頁都對應一行 sql 語句&#xff0c;若每一行都寫單獨對應的 sql 語句不僅重復…

[QOI] qoi_desc | qoi_encode | qoi_decode

鏈接&#xff1a;https://phoboslab.org/log/2021/11/qoi-fast-lossless-image-compression &#xff08;看代碼設計的時候&#xff0c;真的大為震撼&#xff0c;偉大的algorithm T.T&#xff09; docs&#xff1a;QOI圖像格式 qoi項目提出了Quite OK Image&#xff08;QOI&am…

智慧城軌可視化:一屏智管全城

圖撲智慧城軌可視化系統&#xff0c;把地鐵線路、車站、列車都搬進三維畫面。列車晚點預警、站臺擁擠提示、設備故障定位…… 這些關鍵信息一屏聚合&#xff0c;調度員能快速調整發車頻次&#xff0c;疏導高峰客流。遇上突發情況&#xff0c;系統聯動應急方案&#xff0c;同步顯…

包新的Git安裝與使用教程(2024九月更新)

目錄 一、安裝git 1.下載git 2.git安裝 3.環境變量配置與測試 二、使用教程 1.創建版本庫 2.版本回退 3.刪除和恢復文件 一、安裝git 1.下載git 官方下載地址&#xff1a;https://git-scm.com/download 然后進入以下頁面&#xff0c;點擊下載鏈接即可(windows一般都是…

中望3D 2026亮點速遞(1)-全新槽功能螺紋功能,減少繁瑣操作

本文為CAD芯智庫整理&#xff0c;未經允許請勿復制、轉載&#xff01;中望3D 2026全新的槽功能&#xff0c;包括&#xff1a;&#xff08;1&#xff09;可快速生成多種槽形&#xff1b;&#xff08;2&#xff09;快速生成一個或多個槽&#xff1b;&#xff08;3&#xff09;支持…

2025毫米波雷達技術白皮書:智能汽車與物聯網的感知核心

隨著人工智能、物聯網&#xff08;IoT&#xff09;和智能汽車產業的迅猛發展&#xff0c;毫米波雷達技術正成為感知領域的核心驅動力。毫米波雷達憑借其高精度、全天候和強抗干擾能力&#xff0c;廣泛應用于智能汽車的自動駕駛、物聯網的環境感知以及工業自動化。2025年&#x…

用 React-Three-Fiber 實現雪花下落與堆積效果:從零開始的 3D 雪景模擬

在 Web3D 開發中&#xff0c;自然現象模擬一直是極具吸引力的主題。本文將基于 React-Three-Fiber&#xff08;R3F&#xff09;框架&#xff0c;詳解如何實現一個包含雪花下落、地面堆積的完整雪景效果。我們會從基礎粒子系統入手&#xff0c;逐步完善物理交互邏輯&#xff0c;…

從抓包GitHub Copilot認證請求,認識OAuth 2.0技術

引言 在現代開發工具中&#xff0c;GitHub Copilot 以智能、嵌入式的人工智能代碼補全能力著稱。作為一項涉及用戶敏感數據和付費授權的服務&#xff0c;其認證授權流程尤為值得技術研究。本文基于實際抓包 VS Code 中的 Copilot 登錄認證請求&#xff0c;系統梳理其 OAuth 2.…

Linux操作系統之線程:分頁式存儲管理

目錄 前言&#xff1a; 一、分頁式存儲管理 二、二級頁表的地址轉化 三、缺頁中斷 總結 前言&#xff1a; 我們上篇文章簡單介紹了線程的一些知識點&#xff0c;但是還有很多坑沒有給大家填上&#xff0c;包括頁表部分我們還沒為大家說明。 本篇文章我將會繼續為大家講解…

xss1-8

Level-1<script>alert()</script>基礎反射型 無任何過濾Level-2"> <script>alert()</script> <"閉合屬性&#xff1a;">用來閉合當前標簽的value屬性注入新標簽&#xff1a;閉合屬性后&#xff0c;插入獨立的<script>…

51c嵌入式~單片機~合集1

自己的原文哦~ https://blog.51cto.com/whaosoft/11897656 一、STM32的啟動模式配置與應用 三種BOOT模式 所謂啟動&#xff0c;一般來說就是指我們下好程序后&#xff0c;重啟芯片時&#xff0c;SYSCLK的第4個上升沿&#xff0c;BOOT引腳的值將被鎖存。用戶可以通過設…

Typecho分類導航欄開發指南:從基礎到高級實現

文章目錄 Typecho分類導航欄深度解析:父分類與子分類的完美呈現 引言 一、Typecho分類系統基礎 1.1 Typecho分類結構 1.2 獲取分類數據的基本方法 二、基礎分類導航輸出 2.1 簡單的平鋪式導航 2.2 帶計數器的分類導航 三、層級分類導航實現 3.1 遞歸輸出父子分類 3.2 使用Type…

C++異步編程工具 async promise-future packaged_task等

深入探討 C11 中引入的四個核心異步編程工具&#xff1a;std::async, std::future, std::promise, 和 std::packaged_task。它們共同構成了 C 現代并發編程的基礎。 為了更好地理解&#xff0c;我們可以使用一個餐廳點餐的類比&#xff1a; std::future (取餐憑證)&#xff1…

Linux-網絡管理

網絡管理1. 網絡基礎1.1 TCP/IP 協議棧&#xff08;四層模型&#xff09;1.2 網絡設備配置與基礎概念1.3 網絡接口命名規則1.4 網絡配置文件位置2. 常用網絡配置命令2.1 查看網絡接口信息2.2 配置 IP 地址2.3 啟用/禁用網卡2.4 修改網卡 MAC 地址2.5 配置網卡的 MTU&#xff08…

Linux鎖的概念及線程同步

目錄 1.常見鎖概念 死鎖 死鎖四個必要條件 避免死鎖 避免死鎖算法 2. Linux線程同步 條件變量 同步概念與競態條件 條件變量函數 初始化 銷毀 等待條件滿足 喚醒等待 簡單案例&#xff1a; 條件變量使用規范 1.常見鎖概念 死鎖 死鎖是指在一組進程中的各個進程均占有不會釋放的…

docker更換國內加速器-更換華為加速器2025-717親測可用docker 拉取鏡像出錯

[rootlocalhost ~]# docker pull nginx Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)報錯原因就是…

Unity VR多人手術模擬恢復2:客戶端移動同步問題分析與解決方案

Unity VR多人手術模擬恢復2&#xff1a;客戶端移動同步問題分析與解決方案 &#x1f3af; 問題背景 在開發基于Unity Mirror網絡架構的VR多人手術模擬系統時&#xff0c;我們遇到了一個復雜的客戶端移動同步問題&#xff1a; 主要操作者&#xff08;第一個客戶端&#xff09;&a…

uni-app開發的頁面跳轉全局加載中

uni-app開發的頁面跳轉全局加載中首先需要下載插件創建加載中頁面組件app.vue頁面中監聽跳轉首先需要下載插件 https://ext.dcloud.net.cn/plugin?id20613 創建加載中頁面組件 <!-- 全局自定義加載中 --> <template><view v-if"visible" class&qu…

XXE漏洞4-XXE無回顯文件讀取-PentesterLab靶場搭建

一.PentesterLab靶場搭建(實驗環境搭建)介紹&#xff1a;PentesterLab 是一個全面的漏洞演示平臺&#xff0c;但是它是收費的&#xff0c;我們這里只使用它的 xxe 演示案例。安裝 PentesterLab 虛擬機:下載好鏡像&#xff1a; 1.打開VMware新建虛擬機&#xff0c;選擇典型就行。…