Selenium如何从具有相同类nam的元素获取信息

2024-10-08 18:28:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个python应用程序,它可以提取youtube频道视频的所有youtube标题。在

我目前正在尝试使用selenium。在

def getVideoTitles():
    driver = webdriver.Chrome("/Users/{username}/PycharmProjects/YoutubeChannelVideos/chromedriver")
    driver.get(googleYoutubePage())

    titleElement = driver.find_element_by_class_name("yt-lockup-content")
    print(titleElement.text) #it prints out title, + views, hours ago, and "CC"
     #I suck at selenium so lets just store the title and cut everything after it

类名yt lockup content是youtube频道/视频页面上每个视频的类名。 在上面的代码中,我可以获得该页面上第一个youtube视频的标题。但是我希望遍历所有youtube标题(换句话说,我希望遍历每个yt锁定内容元素),以便存储.text。在

但我想知道如何访问yt锁定内容[2]persay。换句话说,这将是该页面上的第二个视频,具有相同的类名

这是我的全部代码。 尽情玩玩

^{pr2}$

Tags: text标题视频titleyoutubedriverseleniumit
3条回答

这似乎是一种过于复杂的方法。您只需使用URL https://www.youtube.com/user/{ChannelName}/videos直接导航到videos页面,遍历标题并打印它们。在

print("Please enter the channel that you would like to scrape video titles...")
channelName = input()
videosUrl = "https://www.youtube.com/user/%s/videos" % channelName
driver = webdriver.Chrome("/Users/{username}/PycharmProjects/YoutubeChannelVideos/chromedriver")
driver.get(videosUrl)
for title in driver.find_elements_by_class_name("yt-uix-tile-link")
    print(title.text)

你试过driver.find_elements_by_css_selector(".yt-lockup-content")吗?在

您可以使用driver.find_element_by_class_name,而不是使用driver.find_elements_by_class_name,它将返回具有指定类名的所有元素的列表。在

从那里你可以迭代列表,得到每个youtube视频的标题。在

相关问题 更多 >

    热门问题