Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用selenium python的完整页面源代码(在JS呈现之前)?_Python_Selenium - Fatal编程技术网

使用selenium python的完整页面源代码(在JS呈现之前)?

使用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呈现之前,如何捕获完整的页面源

我从一个带有分页表的站点上抓取数据(最大结果为500,每页25个结果)。当我使用chrome“查看源代码”时,我可以看到所有500个结果,但是,一旦JS在selenium中呈现,当使用
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
,它显然是在渲染后返回源代码。