Как я за считанные секунды извлек изображения из Google Chrome!
В этом небольшом и простом примере мы рассмотрим, как использовать Selenium для удаления изображений из Google Chrome по любому ключевому слову (или набору ключевых слов), которое ищет пользователь.
Цель
- Наша программа должна взять любое ключевое слово (например, «кошка») от пользователя вместе с необходимым количеством изображений и удалить это количество изображений из изображений Google в браузере Chrome.
- Изображения должны храниться в папке, названной в честь поискового запроса, и должны быть правильно пронумерованы, чтобы их было легко найти и интерпретировать.
Ход программы
- Во-первых, наша программа должна принимать условие поиска и количество изображений, которые необходимо извлечь.
- Программа должна проверить, существует ли уже папка с тем же именем, что и поисковый запрос. Если это не так, он должен создать его.
- Затем наша программа должна открыть страницу Google Images для этого конкретного поискового запроса.
- Затем он должен щелкнуть каждое изображение и извлечь его URL-адрес, который можно использовать для очистки и сохранения изображения позже. Он должен извлечь столько URL-адресов, сколько указано.
- Если на веб-странице не так много изображений, следует нажать кнопку «Загрузить еще», чтобы перейти на следующую страницу.
- После того, как список 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: