如何解决如何移至下一个YouTube视频并收集有关推荐视频的数据?
我正在尝试制作一个Python脚本来播放YouTube视频,获取当前视频的标题和频道名称以及推荐的前15个视频。此后,它应该播放下一个视频(建议首先播放,自动播放已打开)。这应该做5次。听起来很简单,但事实并非如此。第一个问题是,有时它不会移至下一个视频并继续播放当前视频。而且,即使它全部跳了五遍下一个视频,它也不会获得新视频的标题和频道名称,因此建议您这样做。当我不使用for循环时,它可以正常工作。
PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)
wait = WebDriverWait(driver,10)
presence = EC.presence_of_element_located
visible = EC.visibility_of_element_located
clickable = EC.element_to_be_clickabledef
get_recommended(self):
try:
for i in range(5):
wait.until(presence((By.ID,"related")))
recommended = wait.until(visible((By.ID,"related")))
titles = []
channels = []
video_counter = 0
while video_counter < 15:
titles = recommended.find_elements_by_id("video-title")
channels = recommended.find_elements_by_id("channel-name")
video_counter = len(titles)
curr_title = wait.until(presence((By.TAG_NAME,"h1")))
element = wait.until(presence((By.ID,"meta-contents")))
curr_channel = element.find_element_by_id("channel-name")
print("\nNow playing " + curr_title.text + " By " + curr_channel.text)
print("Next: " + titles[0].text + " By " + channels[0].text + "\n")
for video in range(15):
print(str(video + 1) + ". title: " + titles[video].text + " By " + channels[video].text)
wait.until(clickable((By.CLASS_NAME,"style-scope ytd-compact-autoplay-renderer")))
next_video = titles[0]
actions = ActionChains(driver)
actions.move_to_element(next_video).click().perform()
finally:
driver.quit()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。