使用selenium python的完整页面源代码(在JS呈现之前)?
我从一个带有分页表的站点上抓取数据(最大结果为500,每页25个结果)。当我使用chrome“查看源代码”时,我可以看到所有500个结果,但是,一旦JS在selenium中呈现,当使用使用selenium python的完整页面源代码(在JS呈现之前)?,python,selenium,Python,Selenium,我从一个带有分页表的站点上抓取数据(最大结果为500,每页25个结果)。当我使用chrome“查看源代码”时,我可以看到所有500个结果,但是,一旦JS在selenium中呈现,当使用driver.page\u source时,只会显示25个结果 我曾尝试将cookie和头传递给请求,但这不可靠,需要坚持使用selenium。我还提出了一个简陋的解决方案,点击paginator的next按钮,但一定有更好的方法 那么,在使用selenium和python绑定进行JS呈现之前,如何捕获完整的页面源
driver.page\u source
时,只会显示25个结果
我曾尝试将cookie和头传递给请求
,但这不可靠,需要坚持使用selenium。我还提出了一个简陋的解决方案,点击paginator的next
按钮,但一定有更好的方法
那么,在使用selenium和python绑定进行JS呈现之前,如何捕获完整的页面源代码呢?可能有一种更简单的方法,但事实证明,您可以从浏览器中执行各种异步操作,包括获取:
def fetch(url):
return driver.execute_async_script("""
(async () => {
let r = await fetch('""" + url + """')
arguments[0](await r.text())
})()
""")
html = fetch('https://stackoverflow.com/')
同源策略将适用。使用相关HTML和您的代码测试更新问题页面源不相关。这个问题适用于JS在渲染期间修改DOM的任何场景。在我当前的场景中,JS在呈现后将页面源代码隐藏在JS变量中。我需要在从服务器加载页面源代码之后和任何JS渲染之前捕获页面源代码。我唯一能找到的是
driver.page\u source
,它显然是在渲染后返回源代码。