python-3.x 如何在Google Cloud Composer中设置chromedriver的路径

cbjzeqam  于 2022-11-19  发布在  Python
关注(0)|答案(2)|浏览(95)

我正在尝试运行一个DAG,它将使用 selenium 每周在Cloud Composer上刮取一个网页。
我已经尝试过在创建WebDriver.Chrome()示例时给我上传到GCS的驱动程序给予路径,尽管我认为这不是最好的方法。
气流出现此错误

Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home

如果你有任何关于更新Cloud Composer的PATH变量的提示,我将非常感激。如果我需要更多的信息,请留下评论,我会补充的。

gcuhipw9

gcuhipw91#

所以没有官方的答案,Composer和GKE的Slack频道也帮不上忙。真实的的问题是二进制文件不在Composer上。现在最好的解决办法是手动ssh到你所有的GKE airflow-worker中,然后自己安装Google Chrome:https://linuxize.com/post/how-to-install-google-chrome-web-browser-on-ubuntu-18-04/
然后把你安装的正确版本的Chrome的chromedriver放在dags/dependencies文件夹中,并在示例化你的Webdriver对象时引用它。希望这对你有帮助!

siv3szwd

siv3szwd2#

你可以创建一个Docker文件,并在Docker文件中给出安装chrome的命令。或者像Alex提到的那样,你可以在所有的工作节点上手动安装chrome。
1.按照本教程使用Cloud shell-https://towardsdatascience.com/connect-airflow-worker-gcp-e79690f3ecea连接到工作节点
1.进入worker后运行以下命令来安装Chrome-

sudo apt-get update

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

sudo dpkg -i google-chrome-stable_current_amd64.deb

如果出现依赖项错误,请运行以下命令,然后再次运行安装命令

sudo apt --fix-broken install

要检查chrome安装,请运行-

google-chrome --version

现在检查chrome二进制文件的安装位置

which google-chrome-stable

复制此路径并将其放在binary_location的Selenium选项中

options = webdriver.ChromeOptions()
options.binary_location= '/usr/bin/google-chrome-stable'
browser = webdriver.Chrome(ChromeDriverManager().install(),chrome_options=options);

如果您正在寻找Chrome驱动程序,您可以在创建上面显示的webdriver对象时安装它

相关问题