使用Selenium-Python的整页源代码(在JS渲染之前)?

时间:2018-11-25 18:06:07

标签: python selenium

我正在从具有分页表的站点中抓取数据(最大结果500,每页25个结果)。当我使用chrome来“查看源代码”时,我可以看到所有500个结果,但是,当JS渲染硒时,使用driver.page_source时只能显示25个结果。

我曾尝试将cookie和标头传递给requests,但这并不可靠,需要坚持使用硒。我也提出了一种麻烦的解决方案,即单击分页器的next按钮,但是必须有更好的方法!

那么在使用selenium和python绑定进行JS渲染之前,如何捕获整个页面源?

1 个答案:

答案 0 :(得分:1)

可能有一种更简单的方法,但事实证明,您可以从浏览器执行各种异步操作,包括提取:

def fetch(url):
  return driver.execute_async_script("""
    (async () => {
      let r = await fetch('""" + url + """')
      arguments[0](await r.text())
    })()
  """)

html = fetch('https://stackoverflow.com/')

原产地政策将适用。