Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 28, 2018 14:46:56

Karalov86
Зарегистрирован: 2016-06-17
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу извлечь картинку с сайта с помощью Selenium

Изучаю книгу автоматизация рутинных задач. Уже столкнулся с тем что некоторые советы устарели.
Есть задача в книге скачать картинку с сайта 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")

Офлайн

#2 Авг. 28, 2018 15:47:26

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

Не могу извлечь картинку с сайта с помощью Selenium

 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!')
Скачает все фотки со страницы



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Офлайн

#3 Авг. 29, 2018 13:07:25

Karalov86
Зарегистрирован: 2016-06-17
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Не могу извлечь картинку с сайта с помощью Selenium

Скачает все фотки со страницы
Спасибо. А почему не ищется например по имена класса как я пробовал? Это какая то защита на сайтах?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version