What I want:
- Able to extract all the views of each video resulted by selenium on a youtube search result page.
- For example: if I search for "Believer from Imagine Dragons" on youtube, it should give me the number of views all of the resulted videos have (like - 104M views, 1.5B views, 698M views, etc.) up to let's say for first 20 videos.
What I have tried
from selenium import webdriver
driver=webdriver.Chrome(executable_path='C:\\ProgramData\\chocolatey\\bin\\chromedriver.exe')
search = 'Believer from Imagine Dragons'
driver.get("https://www.youtube.com/results?search_query=" + search)
main = driver.find_elements_by_id("metadata")
for datas in main:
info = datas.find_elements_by_id("metadata-line")
for views in info:
view_counts = views.find_element_by_xpath("""//*[@id="metadata-line"]/span[1]""")
print('view_counts: ' + str(view_counts.text))
Output of this:
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
view_counts: 104M views
What I have also tried
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver=webdriver.Chrome(executable_path='C:\\ProgramData\\chocolatey\\bin\\chromedriver.exe')
search = 'Believer from Imagine Dragons'
driver.get("https://www.youtube.com/results?search_query=" + search)
main = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "metadata"))
)
data = main.find_elements_by_id("metadata-line")
for datas in data:
views = datas.find_element_by_xpath("""//*[@id="metadata-line"]/span[1]""")
print(views.text)
Output of this:
104M views
But, none of them gave me what I wanted. Please Help.
Future Goal (if you could help):
- Able to play a video which have the highest number of views on that page.