Код помог мне загрузить кучу изображений из Google. Раньше он работал несколько дней назад, и теперь внезапно код ломается.
Код:
# importing google_images_download module
from google_images_download import google_images_download
# creating object
response = google_images_download.googleimagesdownload()
search_queries = ['Apple', 'Orange', 'Grapes', 'water melon']
def downloadimages(query):
# keywords is the search query
# format is the image file format
# limit is the number of images to be downloaded
# print urs is to print the image file url
# size is the image size which can
# be specified manually ("large, medium, icon")
# aspect ratio denotes the height width ratio
# of images to download. ("tall, square, wide, panoramic")
arguments = {"keywords": query,
"format": "jpg",
"limit":4,
"print_urls":True,
"size": "medium",
"aspect_ratio": "panoramic"}
try:
response.download(arguments)
# Handling File NotFound Error
except FileNotFoundError:
arguments = {"keywords": query,
"format": "jpg",
"limit":4,
"print_urls":True,
"size": "medium"}
# Providing arguments for the searched query
try:
# Downloading the photos based
# on the given arguments
response.download(arguments)
except:
pass
# Driver Code
for query in search_queries:
downloadimages(query)
print()
Выходной журнал:
Элемент №: 1 -> Название элемента = Apple Evaluating ... Начало загрузки ...
К сожалению, все 4 не могут быть загружены, потому что некоторые изображения не могут быть загружены. 0 - это все, что мы получили за этот поисковый фильтр!
Ошибки: 0
№ объекта: 1 -> Название элемента = Orange Evaluating ... Начало загрузки ...
К сожалению, все 4 не могут быть загружены, потому что некоторые изображения не могут быть загружены. 0 - это все, что мы получили за этот поисковый фильтр!
Ошибки: 0
№ объекта: 1 -> Название элемента = Оценка винограда ... Начало загрузки ...
К сожалению, все 4 не могут быть загружены, потому что некоторые изображения не могут быть загружены. 0 - это все, что мы получили за этот поисковый фильтр!
Ошибки: 0
№ объекта: 1 -> Название элемента = арбуз Оценка ... Начало загрузки ...
К сожалению, все 4 не могут быть загружены, потому что некоторые изображения не могут быть загружены. 0 - это все, что мы получили за этот поисковый фильтр!
Ошибки: 0
Это на самом деле создать папку, но без изображений в ней.
источник
Ответы:
Похоже, что есть проблема с пакетом. Смотрите эти открытые PR: PR1 и PR2
источник
Я думаю, что Google меняет DOM. Элемент class = "rg_meta notranslate" больше не существует. Это изменено на class = "rg_i ..."
источник
Действительно, проблема появилась не так давно, уже есть куча похожих проблем Github:
К сожалению, нет официального решения, на данный момент вы можете использовать временное решение, которое было предоставлено в обсуждениях.
источник
Причина, по которой это не работает, заключается в том, что Google изменил способ, которым они все делают, так что теперь вам нужно включить ключ api_key в строку поиска. В результате такие пакеты, как google-images-download, больше не работают, даже если вы используете версию 2.8.0, потому что у них нет заполнителя для вставки строки api_key, которую вы должны зарегистрировать в Google, чтобы получать 2500 бесплатных загрузок в день.
Поэтому лучший способ сделать это сейчас - использовать пакет pip google-search-results и предоставить свой api_key как часть параметров запроса.
где вы сами предоставляете свой ключ API и затем вызываете:
Это возвращает строку JSON со ссылкой на все URL-адреса изображений, а затем вы просто скачиваете их напрямую.
источник