如何在Heroku上使用Selenium Webdriver?

Ath*_*nko 5 selenium webdriver heroku scraper node.js

我正在开发Node.js应用程序,并在其上使用Selenium Webdriver进行抓取。但是,当我在Heroku上部署时,Selenium无法正常工作。我如何使Selenium在Heroku上工作?

Ang*_* L. 5

下面是使用 selenium-webdriver npm 包和 chrome 浏览器的 javaScript 示例代码。

const webdriver = require('selenium-webdriver');
const chrome = require('selenium-webdriver/chrome');

let options = new chrome.Options();
//Below arguments are critical for Heroku deployment
options.addArguments("--headless");
options.addArguments("--disable-gpu");
options.addArguments("--no-sandbox");

let driver = new webdriver.Builder()
  .forBrowser('chrome')
  .setChromeOptions(options)
  .build();

driver.get('http://www.google.com');
driver.quit();
Run Code Online (Sandbox Code Playgroud)

在准备部署之前,您需要向 Heroku 添加两个构建包。

  • 使用 Heroku buildpacks 命令:
$ heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-chromedriver
$ heroku buildpacks:add --index 2 https://github.com/heroku/heroku-buildpack-google-chrome
Run Code Online (Sandbox Code Playgroud)

或者


小智 4

我能够使用 PhantomJs 作为无头浏览器让 Selenium Webdriver 在 Node/Heroku 上工作。我将 PhantomJs buildpack 安装到了 Heroku 应用程序中,并且它正常工作了。我努力让 Chrome 和 Firefox 驱动程序在 Heroku 上运行...我写了一篇博客,其中包含我用来让它运行的步骤和代码:

http://www.viderman.com/2017/05/selenium-on-heroku.html

  • 请在您的答案中包含步骤和代码。答案不应依赖外部链接来获取大部分信息。 (12认同)