Найти - Пользователи
Полная версия: Не могу извлечь картинку с сайта с помощью Selenium
Начало » Python для новичков » Не могу извлечь картинку с сайта с помощью Selenium
1
Karalov86
Изучаю книгу автоматизация рутинных задач. Уже столкнулся с тем что некоторые советы устарели.
Есть задача в книге скачать картинку с сайта flickr.com
Пытаюсь скачать первую же из предлагаемых но не могу найти её не по id не по имени класса.
Подскажите как правильно это сделать и xpath и селекторы пробовал. Но ID картинки меняются каждый раз. И итог selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: .overlay no-outline

https://www.flickr.com/search/?text=Paris

 from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import requests, os, bs4, time
url = "https://www.flickr.com" # начальный URL-адрес
os.makedirs("flickr", exist_ok=True) # сохраняет картинки в папку flickr
counter = 5
browser = webdriver.Firefox()
browser.get(url)
#while counter <= 5:
browser.find_element_by_id("search-field").send_keys("Paris")  
browser.find_element_by_id("search-field").send_keys(Keys.ENTER)
browser.get("https://www.flickr.com/search/?text=Paris")
time.sleep(3)
imagesel = browser.find_element_by_class_name("overlay no-outline")
DamMercul
 from requests import get
from os import makedirs
from bs4 import BeautifulSoup as bs
URL = "https://www.flickr.com"
content = bs(get(URL + "/search/?text=moon", headers={"User-Agent": "Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20121202 Firefox/20.0",
                                 "Connection": "close"}).text, 'html.parser')
photos = [URL + a.get('href') for a in content.find_all('a') if a.get('class')  == ''overlay" and a.get("href").startswith('/photos/')]
os.makedirs("flickr", exist_ok=True)
for photo in photos:
    with open('photo_' + str(photos.index(photo)) + ".jpg", 'wb') as _photo:  # не знаею расширение
        _photo.write(get(photo, headers={"User-Agent": "Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20121202 Firefox/20.0",
                                 "Connection": "close"}).content)
print('Done!')
Скачает все фотки со страницы
Karalov86
Скачает все фотки со страницы
Спасибо. А почему не ищется например по имена класса как я пробовал? Это какая то защита на сайтах?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB