<MyRusakov.ru />

Разработчик игр на Unreal Engine

Разработчик игр на Unreal Engine

Этот комплект с нуля всего за 7 месяцев сделает Вас Unreal-разработчиком. И при этом учиться достаточно 1 час в день.

Начнёте Вы с основ программирования, постепенно перейдя к C++. Затем очень подробно изучите Unreal Engine, и после научитесь программировать на C++ в Unreal Engine. В конце создадите крупный проект на C++ в Unreal Engine для своего портфолио.

Комплект содержит:

- 416 видеоуроков

- 95 часов видео

- 1024 задания для закрепления материала из уроков

- 3 финальных тестирования

- 4 сертификата

- 12 Бонусных курсов

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Какая тема Вас интересует больше?

Загрузка изображений c Python и Selenium

Загрузка изображений c Python и Selenium

Здравствуйте! В сегодняшней статье мы рассмотрим, как автоматизировать загрузку изображений из интернета при помощи Python и Selenium. Итак, загрузка изображений из интернета является достаточно распространенным действием пользователей. Обычно, данное действие не занимает много времени, в основном оно уходит на поиск необходимого контента. Но что если необходимо загрузить несколько тысяч или десятков тысяч изображений. Конечно можно найти архив и скачать его или установить программу парсер.

Альтернативой является использование Selenium WebDriver для автоматизации данной задачи. В примере ниже, код извлекает все конечные точки img src с веб-сайта. Можно изменить код для сохранения изображений в облачном хранилище или непосредственно в ваших алгоритмах машинного обучения для прямой обработки.



from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time

# поисковой запрос в
# Google Images
query = "dogs"

# Создание экземпляра вебдрайвера
browser = webdriver.Chrome()

# Установка максимального размера окна
browser.maximize_window()

# Открытие посиковика в браузере
browser.get('https://images.google.com/')

# Находим поисковое окно
box = browser.find_element(By.CSS_SELECTOR, 'input[class="gLFyf"]')

# Вводим поисковой запрос в окно поиска
box.send_keys(query)

# Нажимаем кнопку Enter
box.send_keys(Keys.ENTER)


# Функция прокрутки вниз к результатам изображений

def scroll_to_bottom():
    last_height = browser.execute_script('\
    return document.body.scrollHeight')

    while True:
        browser.execute_script('\
        window.scrollTo(0,document.body.scrollHeight)')

        # установка ожидания загрузки
        # можно увеличить время при медленном интернете
        time.sleep(7)

        new_height = browser.execute_script('\
        return document.body.scrollHeight')

        # нажать на кнопку "Больше результатов"
        try:
            browser.find_element(By.CSS_SELECTOR, ".YstHxe input").click()

            # ожидание загрузки
            time.sleep(3)

        except:
            pass

        # проверка достижения нижнего края страницы
        if new_height == last_height:
            break

        last_height = new_height


# Вызов функции

# Примечание: Если мы хотим загрузить несколько изображений,
# то вызывать функцию scroll_to_bottom() не нужно .
scroll_to_bottom()

# Цикл для захвата и сохранения изображений
for i in range(1, 50):

    try:

        # XPath для каждого изображения
        img = browser.find_element(By.XPATH,
            '//*[@id="islrg"]/div[1]/div[' +
                                   str(i) + ']/a[1]/div[1]/img')

        # Установка местоположения для загрузки
        img.screenshot('Dog_' +
                       query + ' (' + str(i) + ').png')
        # Каждый новый скринщот автоматический
        # именуется

        # задержка времени для избежания ошибок
        time.sleep(0.2)

    except:

        # если искомое изображение не найдено,
        # переходим к следующему
        continue

# В конце закрываем драйвер
browser.close()

Одна интересная вещь в этом заключается в том, что старое содержимое будет загружаться в HTML только по мере его прокрутки в поле зрения. Это событие можно смоделировать в Selenium с помощью JavaScriptExecutor. Он используется для прокрутки вниз до конца страницы для загрузки следующих нескольких наборов изображений.

Таким образом, мы попытались загрузить изображения прямо с поисковика напрямую в компьютер. Следует помнить, что некоторые веб-сайты предлагают пользователям API для использования своих услуг. Обязательно ознакомьтесь с ним, потому что он будет более правильным подходом.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.