使用Selenium ChromeDriver获取页面DOM,计算速度



我正在尝试使用Selenium和ChromeDriver尽快获取页面的完整DOM。当我重要的 Ajax 请求完成后,我将一个类注入到 dom 中,并使用 WebDriverWait 等待该类,然后再继续。

当我测试来自 api 的响应(ajax 调用(时,它们非常一致,我还删除了对广告服务器的任何请求,或网站和 API 之外的任何内容。我已经检查了来自服务器日志和wireshark的请求,再次,它们非常一致。

ChromeDriver获得完整dom所需的时间差异很大。以下是我正在使用的参数和开关。我得到的任何东西从 700 毫秒到 4 秒来获得同一页面的完整 dom。我在这里使用的开关是否阻碍了ChromeDriver?如果我只想要 DOM,没有别的,我应该使用什么?如何优化速度?

使用 Selenium.WebDriver.3.5.0 和 Chrome 60。

chromeOptions.AddArguments("headless", "disable-gpu", "renderer");
chromeOptions.AddArgument("disable-translate");
chromeOptions.AddArgument("no-default-browser-check");
chromeOptions.AddArgument("site-per-process");
chromeOptions.AddArgument("disable-3d-apis");
chromeOptions.AddArgument("disable-background-mode");
chromeOptions.AddArgument("site-per-process");
chromeOptions.AddUserProfilePreference("profile.managed_default_content_settings.images", 2);
chromeOptions.AddUserProfilePreference("credentials_enable_service", false);

谢谢

我的用例是使用 chrome 网络驱动程序生成一个完整的 dom 以发送给爬虫。它将成为 prerender.io 的替代品。

我看到其他一些开发人员也想尝试一下。

我的建议是不要这样做。它不是为它设计的,根据我的经验,你无法做任何事情来使响应更可靠。

如果 yu 使用角度,请使用通用 (https://universal.angular.io/( 我们对此进行了测试,效果很好。

对于其他 JS 框架,https://prerender.io 仍然是一种选择。

谢谢。

相关内容

  • 没有找到相关文章

最新更新