python - 使用 python selenium 的 execute_script() 的 ScrollHeight 大小返回不变的结果
问题描述
代码:
结果:
图片内容是我当前的代码。我的目标是在 youtube 频道中获取所有视频的数据。但目前我只有 30 个初始视频数据。在执行一次逻辑之后,它就完成了。换句话说,newHeight 的大小等于 lastHeight 的大小。当然,execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")
代码正确执行了一次。为什么会出现这个结果?
class Channel:
def __init__(self):
self.channelId = ''
self.Home = ''
self.Home_title = ''
self.videoTab = ''
self.chromedriver = '../chromedriver.exe'
self.chromeBrowser = webdriver.Chrome(self.chromedriver)
def __del__(self):
self.chromeBrowser.quit()
def getVideoData(self):
self.chromeBrowser.get(self.videoTab)
lastHeight = self.chromeBrowser.execute_script("return document.documentElement.scrollHeight")
print('lastHeight : ' + str(lastHeight))
while True:
self.chromeBrowser.execute_script("window.scrollTo(0, document.documentElement.scrollHeight);")
self.chromeBrowser.implicitly_wait(0.5)
newHeight = self.chromeBrowser.execute_script("return document.documentElement.scrollHeight")
print('newHeight : ' + str(newHeight))
if newHeight == lastHeight:
break
lastHeight = newHeight
page = self.chromeBrowser.page_source
html = BeautifulSoup(page, 'html.parser')
for href in html.select('#thumbnail'):
href.get('href')
for video_title in html.select('#video-title'):
print(video_title.text)
print(len(html.select('#video-title')))
解决方案
推荐阅读
- python-3.x - Holoviews 热图动画标签滑块
- oop - 一种会议日历系统的数据结构设计
- html - “溢出:隐藏”不会在 Iphone 上隐藏孩子
- c# - C# 获取调用另一个方法的方法的名称
- python - 哪个 pandas DataFrame 行使用 apply 函数引发了警告?
- python - 在python中创建拼写检查功能(检查拼写错误)
- javascript - 这个符号在打字稿'< >'中是什么意思?
- javascript - Discord.js 参数循环未从数组中挑选
- go - 在http 503之后使用golang的Heroku“连接关闭而没有响应”H13
- python - 尝试升级 pyarrow 会导致错误