我希望能够加快Selenium页面的加载速度,因为我只需要HTML(我正在使用BeautifulSoup爬取所有链接)。使用PageLoadStrategy.NONE无法爬取所有链接,而Chrome不再支持PageLoadStrategy.EAGER。有没有人知道在Python中获取PageLoadStrategy.EAGER的解决方法?
我希望能够加快Selenium页面的加载速度,因为我只需要HTML(我正在使用BeautifulSoup爬取所有链接)。使用PageLoadStrategy.NONE无法爬取所有链接,而Chrome不再支持PageLoadStrategy.EAGER。有没有人知道在Python中获取PageLoadStrategy.EAGER的解决方法?
根据当前的WebDriver W3C Editor's Draft,以下是页面加载策略的表格,将pageLoadStrategy capability keyword链接到一个页面加载策略状态,并显示相应的文档准备状态:
然而,如果你观察当前的 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'; ..."
}
chromdriver
中使用normal
或none
作为pageLoadStrategy
。因此,要么选择none
并自己处理所有内容,要么等待页面按照正常方式加载。