Context:
I am trying to scrape video titles, views and when was it uploaded info from a YouTube channel. It is scraping the same element.
Code trials:
from selenium import webdriver
from selenium.webdriver.common.by import By
url = 'https://www.youtube.com/c/JohnWatsonRooney/videos?view=0&sort=p&flow=grid'
driver = webdriver.Chrome()
driver.get(url)
videos = driver.find_elements(by=By.CLASS_NAME, value='style-scope ytd-grid-video-renderer')
for video in videos:
title = driver.find_element(by=By.XPATH, value='.//*[@id="video-title"]').text
views = driver.find_element(by=By.XPATH, value='.//*[@id="metadata-line"]/span[1]').text
when = driver.find_element(by=By.XPATH, value='.//*[@id="metadata-line"]/span[2]').text
print(f"""Video Title: {title}\nViews: {views}\nUploaded: {when}\n -----------""")
Output
Video Title: Scrapy for Beginners - A Complete How To Example Web Scraping Project
Views: 104K views
Uploaded: 1 year ago
Video Title: Scrapy for Beginners - A Complete How To Example Web Scraping Project
Views: 104K views
Uploaded: 1 year ago
Video Title: Scrapy for Beginners - A Complete How To Example Web Scraping Project
Views: 104K views
Uploaded: 1 year ago..