Поиск картинок Google говорит, что API больше не доступен
Я использую API поиска картинок Google. До вчерашнего дня он работал, но сегодня утром он говорит: "Этот API больше не доступен"
Это официально закрыто, или любая ошибка на моей стороне
Запрос
https://ajax.googleapis.com/ajax/services/search/images?v=1.0&rsz=8&q=cute+kittens
отклик
{"responseData": null, "responseDetails": "This API is no longer available.", "responseStatus": 403}
7 ответов
Это полный шаблон URL для использования
Мы можем устранить ненужные параметры.
https://www.googleapis.com/customsearch/v1?q={searchTerms} & num = {count?} & start = {startIndex?} & lr = {language?} & safe = {safe?} & cx = {cx?} & cref = {Cref?} & сортировки = {рода?} & фильтр = {фильтр?} & GL = {гЛ?} & кр = {кр?} & googlehost = {googleHost?} & c2coff = {disableCnTwTranslation?} & HQ = {HQ?} & гл = { гл?} & SiteSearch = {SiteSearch?} & siteSearchFilter = {siteSearchFilter?} & exactTerms = {exactTerms?} & excludeTerms = {excludeTerms?} & linkSite = {linkSite?} & orTerms = {orTerms?} & relatedSite = {relatedSite?} & dateRestrict = {dateRestrict? } & LowRange={LowRange?}& Highrange = {Highrange?} & SearchType = {SearchType} & FileType = {FileType?} & прав = {права?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}& альт = JSON
я использую
Ответ, который я нашел, был с помощью API пользовательской поисковой системы Google (CSE). Обратите внимание, что это ограничено до 100 бесплатных запросов в день.
Создание cx
и изменив его для поиска изображений
- Создайте пользовательскую поисковую систему на https://cse.google.com/cse/create/new с вашими критериями поиска.
- Выберите сайты для поиска (оставьте это поле пустым, если вы хотите выполнить поиск по всей сети, в противном случае вы можете ввести сайт для поиска на одном конкретном сайте)
- Введите имя и язык для своей поисковой системы.
- Нажмите "Создать". Теперь вы можете найти
cx
в URL вашего браузера. - В разделе "Изменить поисковую систему" нажмите кнопку "Панель управления". В разделе "Изменить" вы найдете ярлык "Поиск изображения" с кнопкой ВКЛ / ВЫКЛ, измените его на ВКЛ. Нажмите "обновить", чтобы сохранить изменения.
Проведение поиска с помощью API
URL-адрес конечной точки API https://www.googleapis.com/customsearch/v1
Для этого API используются следующие параметры JSON:
q
: указывает текст поискаnum
: указывает количество результатов. Требуется целое число от 1 до 10 (включительно)start
: "смещение" для результатов, с которых должен начинаться поиск. Требуется целое значение от 1 до 101.imgSize
: размер изображения. я использовал"medium"
searchType
: должен быть установлен в"image"
filetype
: указывает тип файла для изображения. Я использовал `"jpg", но вы можете оставить это, если расширение файла не имеет значения для вас.key
: ключ API, полученный по https://console.developers.google.com/cx
: идентификатор пользовательской поисковой системы из предыдущего раздела
Просто сделай GET
запрос, передав вышеуказанные параметры как JSON в конечную точку API (также указанную выше).
Примечание. Если вы зададите список рекомендателей в настройках поисковой системы, посещение URL-адреса через браузер, скорее всего, не будет работать. Вам нужно будет сделать вызов AJAX (или эквивалент на другом языке) с сервера, указанного в этом списке. Он будет работать только для тех рефереров, которые были указаны в настройках конфигурации.
Ссылка: https://developers.google.com/custom-search/json-api/v1/reference/cse/list
Теперь вы можете искать изображения с помощью пользовательского API поиска изображений.
Вы можете сделать это в два этапа:
1) Получить CUSTOM_SEARCH_ID
Перейдите на страницу - https://cse.google.ru/cse/all
Здесь вы должны создать новую поисковую систему. Сделайте это и включите поиск изображений там.
Экран (я русский... извините)
затем получите этот идентификатор поисковой системы. Для этого нажмите на кнопку Получить код:
И найдите строку с cx = "здесь будет ваш CUSTOM_SEARCH_ID":
Хорошо. Сделано, теперь второй шаг:
2) Получить SERVER_KEY
Перейдите в консоль Google - https://console.developers.google.com/project
Нажмите кнопку "Создать проект", введите имя и другую необходимую информацию. Выберите этот проект и перейдите к Enable Apis Теперь найдите систему пользовательского поиска.
Теперь мы должны перейти в учетные данные и создать новый ключ сервера:
Хорошо. Теперь мы можем использовать поиск изображений.
Запрос:
https://www.googleapis.com/customsearch/v1?key=SERVER_KEY&cx=CUSTOM_SEARCH_ID&q=flower&searchType=image&fileType=jpg&imgSize=xlarge&alt=json
Замените SERVER_KEY и CUSTOM_SEARCH_ID и вызовите этот запрос.
Лимит: бесплатно вы можете искать только 100 изображений в день. Спасибо за внимание.
Прочитав несколько ответов, я собрал ответ с изображениями:
- Войдите на сайт: https://developers.google.com/custom-search/v1/introduction, на странице вы найдете эту часть, поэтому нажмите кнопку Получить ключ:
- Создайте или выберите проект, а затем ДАЛЕЕ:
- Скопируйте КЛЮЧ API:
- Войдите на веб-сайт, чтобы создать свой CX: https://cse.google.com/cse/create/new, введите случайный домен, например "www.anypage.com" (после того, как мы удалим), выберите язык и определите какое-нибудь имя для вашей поисковой системы. Нажмите кнопку СОЗДАТЬ.
- Увидите эту страницу, затем щелкните в Панели управления:
- Скопируйте идентификатор поисковой системы на потом (это ваш CX). После того, как вы можете настроить поиск на всех веб-сайтах (активный поиск по всей сети, выберите на случайном веб-сайте http://www.anypage.com/, затем нажмите кнопку " Удалить"), и вы можете активировать поиск изображений. Вот так увидим:
- И используя REST, вы можете получить результаты, используя этот пример кода (поиск цветка):
<html lang="pt">
<head>
<title>JSON Custom Search API Example</title>
</head>
<body>
<div id="content"></div>
<script>
function hndlr(response) {
console.log(response);
for (var i = 0; i < response.items.length; i++) {
var item = response.items[i];
// in production code, item.htmlTitle should have the HTML entities escaped.
document.getElementById("content").innerHTML += "<br>" + item.htmlTitle;
}
}
</script>
<script src="https://www.googleapis.com/customsearch/v1?key=API_KEY&cx=SEARCH_ENGINE_KEY&q=flower&searchType=image&callback=hndlr"></script>
</body>
</html>
Базовый код находится здесь: https://developers.google.com/custom-search/v1/using_rest
- После установки вашего API_KEY (key) и вашего ПОИСКОВОГО КЛЮЧА (cx) результат будет таким:
Спасибо @Vijay Shegokar, @aftamat4ik и @Alladinian
Если это только для ваших собственных целей (не для производства) и вы не планируете злоупотреблять поиском картинок Google, вы можете просто извлечь URL первого изображения из результатов поиска Google с помощью JSOUP.
Например: код для получения URL-адреса изображения первого эскиза:
public static String FindImage(String question, String ua) {
String finRes = "";
try {
String googleUrl = "https://www.google.com/search?tbm=isch&q=" + question.replace(",", "");
Document doc1 = Jsoup.connect(googleUrl).userAgent(ua).timeout(10 * 1000).get();
Element media = doc1.select("[data-src]").first();
String finUrl = media.attr("abs:data-src");
finRes= "<a href=\"http://images.google.com/search?tbm=isch&q=" + question + "\"><img src=\"" + finUrl.replace(""", "") + "\" border=1/></a>";
} catch (Exception e) {
System.out.println(e);
}
return finRes;
}
Руководство:
вопрос - термин поиска изображения
ua - пользовательский агент браузера
Измените URL API на Google Custom Image Search
Предоставьте те же параметры вместе с API KEY и CX.
Yahoo Boss API является разумной заменой, хотя он и не бесплатный, и результаты не так хороши.
ОБНОВЛЕНИЕ: API поиска YAHOO BOSS JSON прекратит работу 31 марта 2016 г.
SerpAPI позволяет искать через Google Images и возвращает чистый JSON. он интегрируется с большинством языков программирования: python, php, java, golang, nodejs...
https://serpapi.com/images-results
Google ограничивает количество поисковых запросов в день. но этот сервис предоставляет неограниченные поиски...
Похоже, нам нужно реализовать API пользовательского поиска Google. https://developers.google.com/custom-search/ говорит так в верхней части страницы, которую вы предоставили сами.