执行 selenium 脚本的替代方法

Alternatives to execute a selenium script

我有一个带有 python 3selenium 脚本。我需要每天早上 7 点 运行 它 5 分钟,但我不能为了它而让我的笔记本电脑全天候 24 小时开机。 easiest/best 替代方案是什么?

我检查了 Lambda AWS 但我无法在那里安装 chrome(或它的无头版本)并且我没有使用服务器的经验。

要使用 Python 3 执行 Selenium 脚本而不安装浏览器,您可以使用 GhostDriver.

GhostDriver

Ghost Driver 是使用 PhantomJS 作为后端的 Remote WebDriver 协议的实现。 GhostDriver 被设计成 JavaScript API PhantomJS 本身的组成部分。

Additional WebDriver Capabilities through GhostDriver

  • phantomjs.page.settings.SETTING = VALUE
  • phantomjs.page.customHeaders.HEADER = VALUE
  • phantomjs.page.whitelist
  • phantomjs.page.blacklist
  • unhandledPromptBehavior
  • loggingPrefs
  • phantomjs.binary.path
  • phantomjs.ghostdriver.path
  • phantomjs.cli.args
  • phantomjs.ghostdriver.cli.args

GhostDriver 的主要优势

  • 屏幕截图
  • 页面自动化
  • 网络监控
  • 至 运行 命令行单元测试
  • 与 QUnit 结合用于测试套件

一个例子

  • 代码块:

    from selenium import webdriver
    
    driver = webdriver.PhantomJS(executable_path='/path/to/phantomjs')
    driver.get('https://www.google.com/')
    print(driver.title)
    driver.quit()
    
  • 控制台输出:

    Google
    

AWS Lambda 是实现您的目标的可行解决方案 - 特别是如果脚本的运行时间很短。他们最近将最长执行时间增加到 15 分钟,所以你应该没问题。

在 Lambda 中变得无头 Chrome(在 Python 中;那里充满了 JS/node.js 解决方案 :))是可行的- 我自己过去曾成功使用过这个项目 - https://github.com/21Buttons/pychromeless

要在您想要的时间安排执行,您可以使用 Amazon's CloudWatch