最后,我遵循了Madusudanan的出色建议,并研究了PhantomJS /
Selenium组合。实际上,有一个解决方案!它叫做PhantomJSDriver。
您可以在这里找到Maven依赖项。这是有关幽灵驱动程序的更多信息。
Maven中的设置-我添加了以下内容:
<dependency> <groupId>net.sourceforge.htmlunit</groupId> <artifactId>htmlunit</artifactId> <version>2.41.0</version> </dependency> <dependency> <groupId>com.github.detro</groupId> <artifactId>phantomjsdriver</artifactId> <version>1.2.0</version> </dependency>
它还与Selenium
2.45版一起运行,这是到目前为止的最新版本。我之所以提及这一点,是因为我读过一些文章,其中有人说Phantom驱动程序与Selenium的每个版本都不兼容,但是我想他们同时解决了这个问题。
如果您已经在使用Selenium /
Phantomdriver组合,并且在某个站点上遇到“严格的Javascript错误”,请更新您的Selenium版本。这将解决它。
这是一些示例代码:
public void testPhantomDriver() throws Exception { DesiredCapabilities options = new DesiredCapabilities(); // the website i am scraping uses ssl, but I dont know what version options.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[] { "--ssl-protocol=any" }); PhantomJSDriver driver = new PhantomJSDriver(options); driver.get("https://www.mywebsite"); List<WebElement> elements = driver.findElementsByClassName("media-title"); for(WebElement element : elements ){ System.out.println(element.getText()); } driver.quit();}


