Java Selenium Chromedriver webdriver尽可能快地

时间:2018-10-12 19:38:39

标签: java selenium selenium-chromedriver

我正在将独立程序连接到网站,并且必须阅读网站的某些页面。首先,我使用了Jsoup,但与此同时,我发现页面加载后会加载一些我需要的信息,因此我搜索了webdrivers。 (我不是在寻找图像或其他较大的东西,我的内容都是文字的)

现在,我找到了ChromeDriver,但是对于我来说情况太慢了,因为它具有很多选项和功能。 就我而言,我需要的不仅仅是Jsoup的可能性。 可以禁用ChromeDriver选项和功能的最佳部分来实现此目标吗?

例如,我看到插件被禁用,但是它是一个接一个地关闭的,并不适用于每台PC上的所有Chrome浏览器。我没有找到“ plugin.disable-all”之类的选项。

此外,通过这种方式,我最多只能打开几个chromedriver实例。目前,chromedriver的每个实例都在打开一个使用100Mb内存的Google Chrome浏览器帮助程序。

希望一切都清楚

2 个答案:

答案 0 :(得分:2)

HtmlUnit可能足以满足您的需求。它确实支持 some Javascript。

可以with Webdriver使用它。但on its own

答案 1 :(得分:1)

要使您的网络驱动程序运行得更快(但 却要快得多),则可以在无头模式下运行该驱动程序。有关如何进入Chrome的无头模式的教程,请参见these articles

在启动驱动程序之前,将--headless参数添加到ChromeOptions

无头模式可以通过不呈现浏览器窗口来加快自动化速度,但是请记住,使用JSoup进行直接HTTP GET总是会更快。

我的建议是对页面进行更多的反向工程,看看是否可以弄清楚如何直接查询页面上的(大概是AJAX)调用。如果您可以将这些特定请求视为API,并且仅查询所需的内容,则与通过Selenium实现浏览器自动化相比,您将能够更快地获得结果。