Как я за считанные секунды извлек изображения из Google Chrome!

В этом небольшом и простом примере мы рассмотрим, как использовать Selenium для удаления изображений из Google Chrome по любому ключевому слову (или набору ключевых слов), которое ищет пользователь.

Цель

  • Наша программа должна взять любое ключевое слово (например, «кошка») от пользователя вместе с необходимым количеством изображений и удалить это количество изображений из изображений Google в браузере Chrome.
  • Изображения должны храниться в папке, названной в честь поискового запроса, и должны быть правильно пронумерованы, чтобы их было легко найти и интерпретировать.

Ход программы

  1. Во-первых, наша программа должна принимать условие поиска и количество изображений, которые необходимо извлечь.
  2. Программа должна проверить, существует ли уже папка с тем же именем, что и поисковый запрос. Если это не так, он должен создать его.
  3. Затем наша программа должна открыть страницу Google Images для этого конкретного поискового запроса.
  4. Затем он должен щелкнуть каждое изображение и извлечь его URL-адрес, который можно использовать для очистки и сохранения изображения позже. Он должен извлечь столько URL-адресов, сколько указано.
  5. Если на веб-странице не так много изображений, следует нажать кнопку «Загрузить еще», чтобы перейти на следующую страницу.
  6. После того, как список URL-адресов создан, программа должна перейти по каждому URL-адресу, загрузить туда изображение и сохранить его в созданной папке.

Предпосылки

Драйвер Chrome

Поскольку мы используем Selenium в Google Chrome, нам нужно установить правильный драйвер Chrome, который будет работать в нашей системе.

  • Во-первых, убедитесь, что на вашем компьютере установлен Chrome.
  • Проверьте свою версию Google Chrome. Нажмите на три точки вверху, нажмите «Справка», а затем «О Google Chrome».

  • Теперь вы должны увидеть свою версию. Моя версия Chrome на момент создания этого проекта была Версия 91.0.4472.114 (официальная сборка) (arm64).
  • Теперь перейдите по ссылке эта и нажмите на версию, наиболее близкую к вашей версии. Из предложенных вариантов выберите тот, который подходит для вашей машины. Например, если вы используете MacBook Pro с чипом M1, выберите эту версию драйвера.

  • Загрузите драйвер и сохраните его в том же файле, где вы будете хранить свой проект.

Получение URL-адресов изображений

Создание URL для страницы Google Images

Чтобы получить URL-адреса изображений, наша программа должна перейти на страницу изображений Google для искомого термина. Ссылка на страницу изображений Google для термина кошка: https://www.google.com/search?safe=off&site=&tbm=isch&source=hp&q=cat&oq=cat&gs_l=img.

Обратите внимание: если мы заменим слово кошка в URL-адресе любым другим словом, скажем, собака, мы получим страницу изображений Google для собаки. Таким образом, мы можем сделать общий URL-адрес https://www.google.com/search?safe=off&site=&tbm=isch&source=hp&q={q}&oq={q}&gs_l=img
и заменить { q} с нашим поисковым запросом.

Бесконечная прокрутка в Google Images

Google Images имеет бесконечную прокрутку до определенного момента. Поэтому, когда мы ищем какой-либо термин, он показывает нам некоторые результаты, а при прокрутке вниз он загружается автоматически, без нажатия каких-либо кнопок.

Нам нужно убедиться, что каждый раз, когда мы загружаем страницу, она переходит в конец веб-страницы.

Теперь мы пишем программу, которая открывает веб-страницу и находит изображения. Мы идентифицируем изображения, используя тот факт, что они будут находиться под тегом img и каждое изображение имеет селектор CSS Q4LuWd.

Эта функция продолжает добавлять теги изображений в список. Затем он щелкает изображение и ищет тег с n3VNCb. После обнаружения он сохраняет источник изображения. И так до тех пор, пока не будет найдено необходимое количество изображений.

Загрузи больше

Если нам нужно больше изображений, чем есть на первой веб-странице, наша программа должна будет нажать кнопку "Искать больше результатов". Мы добавили это в программу на случай, если требование по количеству изображений не будет выполнено.

Как только все URL-адреса найдены, они сохраняются в наборе, и этот набор возвращается.

Очистка и сохранение изображений

Теперь создадим функцию, которая принимает URL-адрес с изображением и сохраняет его в указанной папке:

  • Он принимает имя папки, URL-адрес изображения и номер изображения.
  • Он загружает изображение и сохраняет его в папке, а также использует номер изображения для присвоения имени изображению.

Все вместе

Теперь мы создаем функцию, которая вызывает вышеупомянутые функции, а также создает папку для наших изображений.

  • Во-первых, он проверяет, существует ли папка с поисковым запросом в качестве имени или нет. Если это не так, он создает его.
  • Затем он вызывает функцию fetch_image_urls для получения URL-адресов изображений.
  • Наконец, он использует функцию persist_image для сохранения изображения в созданной папке.

И вот мы идем! Мы успешно использовали Selenium для удаления изображений из Google Chrome! Эти изображения теперь можно использовать для любого из ваших проектов!

Полный код можно посмотреть на моем GitHub: