我想加快 selenium 页面的加载时间,因为我只需要 HTML(我正在尝试使用 BeautifulSoup 抓取所有链接)。使用 PageLoadStrategy.NONE 并不能抓取所有链接,Chrome 也不再支持 PageLoadStrategy.EAGER。有谁知道在 python 中获取 PageLoadStrategy.EAGER 的解决方法?
问问题
6077 次
2 回答
4
ChromeDriver是实现WebDriver 的Chromium有线协议的独立服务器。Chrome和Chromium仍在实施和转向W3C 标准的过程中。目前ChromeDriver可用于 Android 版 Chrome 和桌面版 Chrome(Mac、Linux、Windows 和 ChromeOS)。
根据当前的WebDriver W3C Editor's Draft以下是将pageLoadStrategy 能力关键字链接到页面加载策略状态的页面加载策略表,并显示与其对应的文档就绪状态:
但是,如果您观察 ChromeDriver 的当前实现, Chrome DevTools确实会考虑以下document.readyStates:
document.readyState == 'complete'
document.readyState == 'interactive'
这是一个示例相关日志:
[1517231304.270][DEBUG]: DEVTOOLS COMMAND Runtime.evaluate (id=11) {
"expression": "var isLoaded = document.readyState == 'complete' || document.readyState == 'interactive';if (isLoaded) { var frame = document.createElement('iframe'); frame.name = 'chromedriver dummy frame'; ..."
}
根据WebDriver 状态,您将根据WebDriver 规范中的内容找到所有WebDriver 命令的列表及其在ChromeDriver中的当前支持。一旦从各个方面完成实施PageLoadStrategy.EAGER必然会在Chrome 驱动程序中出现功能。
于 2018-06-29T08:26:11.930 回答
1
您只使用normal
ornone
作为pageLoadStrategy
in chromdriver
。因此,要么自己选择none
并处理所有事情,要么像通常那样等待页面加载
于 2018-06-28T17:52:31.550 回答