Google Cloud Platform - 部署一个启动 webdriver 的云函数
Posted
技术标签:
【中文标题】Google Cloud Platform - 部署一个启动 webdriver 的云函数【英文标题】:Google Cloud Platform - Deploy a Cloud Function that starts a webdriver 【发布时间】:2020-02-01 15:27:12 【问题描述】:我正在 GCP 上定义一个云函数,用于在 Python 中抓取网站。
我从定义一个简单地打开 webdriver 的函数开始:
from selenium import webdriver
def launch_search(request):
# Starting a webdriver
driver = webdriver.Chrome()
return 'Success'
这个功能不起作用(Error: could not handle the request
当我触发它时),可能是因为我的远程机器上没有安装 Chrome 驱动程序。因此:
【问题讨论】:
【参考方案1】:鉴于 Cloud Functions 是无服务器的,您无法控制服务器机器。 您可以使用其他可管理的服务,例如GCE 或GKE
【讨论】:
【参考方案2】:您目前无法使用 Python 运行 Selenium 脚本。公共问题跟踪器中有一个功能请求,目前为此开放,可以找到here。
作为替代方案,您可以将 Node.JS 与 Puppeteer 一起使用。我发现 this 博客文章详细介绍了一个用例。
【讨论】:
非常感谢,这很有帮助。你知道我可以使用 Python 来自动化我的 Selenium 脚本的任何其他云服务吗? 通过快速搜索,您可以尝试一下 SeleniumBase:github.com/seleniumbase/SeleniumBase/tree/master/integrations/… 您也可以将其托管在 Heroku youtube.com/watch?v=Ven-pqwk3ec【参考方案3】:看起来可以在 Google Cloud Functions 上运行 selenium。如果你对 javascript/TypeScript 示例而不是 Python 感到满意,我建议你试试这个模板:https://github.com/ccorcos/gcloud-functions-selenium-boilerplate
【讨论】:
以上是关于Google Cloud Platform - 部署一个启动 webdriver 的云函数的主要内容,如果未能解决你的问题,请参考以下文章
使用新的 Google Cloud 日志记录 jar 时,日志未显示在 Google Cloud Platform Stackdriver 中
Google Cloud Platform:Cloud Functions 与 App Engine
Google Cloud Platform - AI Platform:为啥调用 API 时会得到不同的响应正文?
Google Cloud Platform:无法通过API在Storage中上传新文件版本