使用 Selenium ChromeDriver 获取页面 DOM,计算速度
Using Selenium ChromeDriver to get page DOM, calculate speed
我正在尝试使用 Selenium 和 ChromeDriver 尽快获取页面的完整 DOM。当我重要的 Ajax 请求完成后,我将 class 注入 dom 并使用 WebDriverWait 等待那个 class 然后再继续。
当我测试 api(ajax 调用)的响应时,它们非常一致,我还删除了对广告服务器的所有请求,或网站以外的任何内容,api.我检查了来自服务器日志和 wireshark 的请求,它们非常一致。
Chrome驱动程序获得完整 dom 所需的时间差异很大。以下是我正在使用的参数和开关。我从 700 毫秒到 4 秒内得到任何东西,以获得同一页面的完整 dom。我在这里使用的开关是否阻碍了 Chrome 驱动程序?如果我只想要 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 webdriver 生成完整的 dom 以发送给爬虫。它是 prerender.io.
的替代品
我看到其他一些开发人员也想尝试这个。
我的建议是不要这样做。它不是为此而设计的,根据我的经验,您无法做任何事情来使响应更可靠。
如果您使用的是 angular,请使用通用 (https://universal.angular.io/) 我们测试过它,效果很好。
对于其他 JS 框架,https://prerender.io 仍然是一个选项。
谢谢。
我正在尝试使用 Selenium 和 ChromeDriver 尽快获取页面的完整 DOM。当我重要的 Ajax 请求完成后,我将 class 注入 dom 并使用 WebDriverWait 等待那个 class 然后再继续。
当我测试 api(ajax 调用)的响应时,它们非常一致,我还删除了对广告服务器的所有请求,或网站以外的任何内容,api.我检查了来自服务器日志和 wireshark 的请求,它们非常一致。
Chrome驱动程序获得完整 dom 所需的时间差异很大。以下是我正在使用的参数和开关。我从 700 毫秒到 4 秒内得到任何东西,以获得同一页面的完整 dom。我在这里使用的开关是否阻碍了 Chrome 驱动程序?如果我只想要 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 webdriver 生成完整的 dom 以发送给爬虫。它是 prerender.io.
的替代品我看到其他一些开发人员也想尝试这个。
我的建议是不要这样做。它不是为此而设计的,根据我的经验,您无法做任何事情来使响应更可靠。
如果您使用的是 angular,请使用通用 (https://universal.angular.io/) 我们测试过它,效果很好。
对于其他 JS 框架,https://prerender.io 仍然是一个选项。
谢谢。