CoderCastrov logo
CoderCastrov
Парсер

Парсинг изображений с использованием Selenium

Парсинг изображений с использованием Selenium
просмотров
3 мин чтение
#Парсер

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

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

Цель

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

Поток программы

Предварительные требования

Драйвер Chrome

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

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

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

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

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

Заметьте, что если заменить слово "кошка" в URL-адресе на любое другое слово, например "собака", мы получим страницу Google Images для собаки. Поэтому мы можем создать общий 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:

eshitagoel/Web-Scraping

Этот проект использует Selenium для парсинга изображений из Google Chrome - Чтобы выполнить этот проект, необходим подходящий Chrome...

github.com