Использование Custom Search Engine API от Google из Python мне показалось несколько запутанным, поэтому опишу это пошагово, возможно кому-нибудь пригодится. Для начала, нам понадобится библиотека API Client Library for Python, установить которую не представляет труда:
sudo pip install --upgrade google-api-python-client
Во вторых, нам будет нужен идентификатор CSE, который мы для себя создадим на официальной странице. Добавьте в список сайтов для поиска "google.com", а переключатель "Поиск изображений" установите в положение ВКЛ. После того, как сохраним результаты, нажатие кнопки "Идентификатор поисковой системы" покажет нам то, для чего мы прошли все эти мытарства. Это будет похоже на "01345678901234567890:qwer23tyu_i".
Теперь отправляемся в консоль разработчика, а именно в раздел "APIs & auth/APIs". Найдите в списке "Custom Search API" и подключите его.
Там же в консоли переходим в пункт "Credentials", жмем "Add credntials", выбираем "API Key", затем жмем "Server key", даем ему имя и сохраняем. Забираем ключик, он будет похож на "QWerTyQWerTyQWe-QWerTyQWerTyQWerTyQWerTy".
На этом с ключами всё, пишем код на Python. В примере мы получаем все уникальные изображения пляжа, которые может позволить этот API:
from apiclient.discovery import build
service = build('customsearch', 'v1', developerKey="QWerTyQWerTyQWe-QWerTyQWerTyQWerTyQWerTy")
start = 1
while True:
res = service.cse().list(
q='beach',
cx='01345678901234567890:qwer23tyu_i',
fileType="png,jpg", # bmp, gif, png, jpg, svg, pdf, ...
imgColorType="color", # mono, gray, color
imgSize="medium", # icon, small, medium, large, xlarge, xxlarge, huge
imgType="photo", # clipart, face, lineart, news, photo
safe="high", # high, medium, off
searchType="image",
start=start
).execute()
for img in res["items"]:
print(img["link"])
if "nextPage" not in res["queries"]:
break
start = res["queries"]["nextPage"][0]["startIndex"]
Комментариев нет:
Отправить комментарий