某些页面在用户滚动超过某个阈值后加载内容。例如,LinkedIn.com的搜索栏返回一个页面,其中最初只有最初的4-6结果出现在HTML中。实际上,当您向下滚动嵌入的javascript时,将加载额外的配置文件,以显示总共10-12个的结果。
因此,如果我想使用Selenium获取页面中的所有配置文件,我需要模拟用户的滚动操作。我尝试使用driver.execute_script("window.scrollTo(0,1000);")
,但这似乎只在驱动程序在活动窗口中运行时才起作用。如果我的驱动程序在后台运行,Javascript将不会加载其他配置文件。
有办法强制javascript加载所有元素吗?我试过driver.execute_script("window.focus();")
,但没有结果。谢谢!
发布于 2020-08-19 14:49:19
这就是我所使用的,似乎是在为我工作。我把它用于linkedin的网络抓取。
for i in range(5000):
browse = "window.scrollTo(0," + str(i) + ")"
browser.execute_script(browse)
i = i + 400
希望它能帮到你!
https://stackoverflow.com/questions/61658919
复制相似问题