在 AWS Lambda 中放置 Chromedriver 的位置



我正在使用python 3.7进行网络抓取项目。 用 python 用硒和 chromediver 完成了代码.exe在窗口中,它工作正常。 我们将在 AWS Lambda 中添加脚本。 问题是我们需要指定Linux的Chrome驱动程序。

我按照 https://github.com/yai333/Selenium-UI-testing-with-AWS-Lambda-Layers 中的步骤操作。

我没有使用任何无服务器的 YML sript(我不知道相同(。 执行以下操作

我们有一台Linux机器。 创建一个虚拟的Python环境并添加Selenium模块(如 awshttps://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html#python-package-venv 中所述( 将chromdriver和Headless下载到一个文件夹中(大小很大,所以上传到S3(添加两者(Chrome Driver和Python Lib(作为层。 将 handler.py(以 https://github.com/yai333/Selenium-UI-testing-with-AWS-Lambda-Layers 为单位(粘贴到 lambdahandler 文件中。 创建示例测试,然后单击"测试"。 显示错误: 错误消息"ChromeDriver"可执行文件需要位于路径中

我可以在 S3 中上传 chrome 驱动程序并显示路径吗?

刚刚与这个确切的问题斗争了几个小时,我想我可以提供帮助。

在您的 Lambda 层中,您需要在/bin下包含chromedriver二进制文件。操作系统,它将看起来像这样:

layerZip/
|- bin/
|- chromedriver

在您的 lambda 函数的基础设施中,它将存在于/opt/bin/chromedriver.因此,我们需要将 Python 指向它作为可执行文件。要使其正常工作,我必须添加以下内容:

from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location = "/opt/bin/chromedriver"
driver = webdriver.Chrome(executable_path="opt/bin/chromedriver", options=chrome_options)

相关内容

  • 没有找到相关文章

最新更新