簡體   English   中英

在 google Dataflow 作業上安裝 chromedriver

[英]Install chromedriver on google Dataflow job

我想將一個抓取容器化的 python 應用程序遷移到一個可以在數據流上運行的 apache 梁管道。 我的抓取應用程序使用 2 種抓取方法:curl 響應和 selenium chromedriver。

在本地運行應用程序時,一切正常,因為使用這兩種方法成功運行了抓取,因為我在本地計算機上安裝了 chromedriver。

現在的問題是關於數據流。 我知道谷歌數據流是無服務器的。 我只是想知道是否有一種方法可以在運行管道時在數據流工作人員中安裝 chromedriver?

當我在沒有驅動程序的情況下部署管道時,錯誤如下所示: selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home [while running 'ParDo(ScrapeContent)-ptransform-47'] selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://chromedriver.chromium.org/home [while running 'ParDo(ScrapeContent)-ptransform-47']

解決方案是在 Dataflow 中使用自定義容器

您配置一個 docker 容器,在其中安裝 apache-beam[GCP] 和 chromedriver 以及您的所有要求

之后你構建你的鏡像: gcloud builds submit . --tag gcr.io/$PROJECT/$REPO:$TAG gcloud builds submit . --tag gcr.io/$PROJECT/$REPO:$TAG

當您想將您的工作提交到數據流時:

 python main.py 
--project=project 
--region=region
--temp_location=location 
--runner=DataflowRunner 
--experiments=use_runner_v2 
--sdk_container_image=image_path

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM