Home > Net >  get image thumbnail urls from webpage using python selenium
get image thumbnail urls from webpage using python selenium

Time:04-26

I have written this simple script to retrieve the thumbnail URLs after performing a YouTube search for "programming".

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
import time

url = "https://www.youtube.com/results?search_query=programming"
browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
browser.get(url)

time.sleep(10)

image_thumbnails = set()

thumbnails = browser.find_elements(By.CLASS_NAME, "style-scope ytd-thumbnail no-transition")
while len(image_thumbnails) < 10:
    thumbnails = browser.find_elements(By.CLASS_NAME, "style-scope yt-img-shadow")
    for img in thumbnails:
        image_thumbnails.add(img.get_attribute('src'))
        print(img)

time.sleep(10)
browser.close()

However, the output I get is and not the URLs:

[<selenium.webdriver.remote.webelement.WebElement (session="b9a60c0fe036ab4d592094d611ed7da0", element="cfdf2ad0-41b5-47a6-af7d-8bb00a80175f")>, ...]

CodePudding user response:

You are printing the element used in the for loop. To solve this just print the value you are adding. E.g:

print(img.get_attribute('src'))
  • Related