我正在从具有分页表的站点中抓取数据(最大结果500,每页25个结果)。当我使用chrome来“查看源代码”时,我可以看到所有500个结果,但是,当JS渲染硒时,使用driver.page_source
时只能显示25个结果。
我曾尝试将cookie和标头传递给requests
,但这并不可靠,需要坚持使用硒。我也提出了一种麻烦的解决方案,即单击分页器的next
按钮,但是必须有更好的方法!
那么在使用selenium和python绑定进行JS渲染之前,如何捕获整个页面源?
答案 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/')
原产地政策将适用。