【发布时间】:2021-08-22 18:56:17
【问题描述】:
问题
我有一个在 AWS lambda 中运行的网络爬虫,但 几周后 AWS lambda 将停止支持 Ruby 2.7。我去年使用this tutorial 构建了我的刮刀。
我需要找到与 Ruby 2.7 兼容的 chrome driver & headless chrome 版本,但我不知道从哪里开始。
我查看了ChromeDriver's downloads portal,但我没有看到任何迹象表明 Chrome 驱动程序适用于 ruby 2.7 或任何其他特定版本的 ruby。
我的代码通过访问 ChromeDriver 二进制文件并在特定文件夹中启动它来工作
我通过运行这些命令下载了我正在使用的特定二进制文件:
# serverless chrome
wget https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-37/stable-headless-chromium-amazonlinux-2017-03.zip
unzip stable-headless-chromium-amazonlinux-2017-03.zip -d bin/
rm stable-headless-chromium-amazonlinux-2017-03.zip
# chromedriver
wget https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip
unzip chromedriver_linux64.zip -d bin/
rm chromedriver_linux64.zip
【问题讨论】:
-
这个问题你解决了吗?我有和你一样的问题。因此,当我只是将 ruby 版本 2.5 迁移到 2.7 时,出现了诸如“Selenium::WebDriver::Error::WebDriverError:无法连接到 chromedriver 127.0.0.1:9515”之类的问题。我的 Serverless chrome 和 chromedriver 版本和你一样。
-
@Hoonki 我找到了一种让它工作的方法,你需要做的是将你的 Lambda 从使用 .zip 文件更改为使用存储在 ECR 中的 docker 图像,我会写一个 propper在我完成之后回答我的问题。
-
谢谢。但是使用 docker image 是什么意思呢?我们还需要使用 ruby 2.5 环境吗?
-
@Hoonki 您可以创建自己的自定义 docker 映像以从头开始在 Lambda 中使用。你只需要遵循这样的指南 docs.aws.amazon.com/lambda/latest/dg/images-create.html 我一直在研究这个问题一段时间了。我会回答我自己的问题并在dev.to 中创建一个教程,但我认为你应该能够自己解决这个问题。或者你可以等我更新。
-
我更新了帖子并包含了我使用的 Docker 文件。 @HarrisJT
标签: selenium-webdriver aws-lambda google-chrome-headless ruby-2.7