【问题标题】:Chrome Driver and Chromium Binaries are not working on aws lambdaChrome 驱动程序和 Chromium 二进制文件不适用于 aws lambda
【发布时间】:2021-06-02 15:06:46
【问题描述】:

我陷入了一个问题。我需要在 AWS lambda 上做一些抓取工作,所以我按照下面提到的博客及其代码库作为起点,这非常有帮助,并且在运行时环境的 AWS lambda 上对我来说工作得非常好:Python 3.6

https://manivannan-ai.medium.com/python-selenium-on-aws-lambda-b4b9de44b8e1 https://github.com/ManivannanMurugavel/selenium-python-aws-lambda

然后我遇到了一个问题,即上面使用的示例代码无法在点击时下载文件。查看互联网后,我知道 62 版本的 chrome 驱动程序和 chromium 二进制文件不支持此功能。所以我开始寻找更高版本的二进制文件。我已经使用了几个二进制文件(chrome 驱动程序和 chromium),显然是兼容的对,但对于所有这些,我都无法成功并且出现以下相同的错误。

我已经尝试了这个 repo 中提供的二进制文件,但对我不起作用。

https://github.com/vittorio-nardone/selenium-chromium-lambda

这些是我尝试过不同版本但对我不起作用的其他来源。

https://chromium.cypress.io/ https://github.com/adieuadieu/serverless-chrome/releases

  "errorMessage": "Message: unknown error: Chrome failed to start: exited abnormally.\n  (chrome not reachable)\n  (The process started from chrome location /opt/chromium is no longer running, so ChromeDriver is assuming that Chrome has crashed.)\n",

互联网/论坛上的人说这个错误是由于 chrome 驱动程序和 chromium 二进制文件之间的版本不兼容。但是我已经仔细考虑了这一点,但仍然没有成功。请指导我如何使它工作。提前致谢。

【问题讨论】:

    标签: python amazon-web-services selenium aws-lambda


    【解决方案1】:

    您可以尝试添加以下行:

    chrome_options.add_argument('--disable-dev-shm-usage')
    

    这会忽略 Chrome 用来存储文件的 /dev/shm 目录。 由于这个目录在 aws lambda 上的大小很小,因为它是一个 docker 容器,我们可以禁用它。

    【讨论】:

      【解决方案2】:

      Vittorio-Nardone 示例 https://github.com/vittorio-nardone/selenium-chromium-lambda 将 Chrome 驱动程序更新到 86。它适用于我。

      但是,如果我添加环境变量 FONTCONFIG_PATH=/opt/bin ,我将遇到相同的 chrome 错误。 fonts.conf 可能有问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-05-16
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 2021-04-11
        • 1970-01-01
        • 1970-01-01
        • 2012-09-10
        相关资源
        最近更新 更多