Поиск картинок 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}

person Md. Parvez Alam    schedule 02.12.2015    source источник
comment
Со мной случилось то же самое. Кажется, в Интернете нет другого жизнеспособного варианта. Спасибо, Гугл. superfeedr утверждает, что может работать, но после нескольких часов попыток разобраться в их ужасных документах невозможно сделать то, что вы делаете выше. Я надеюсь, что кто-то реализует решение в ближайшее время :(   -  person Scotty Bollinger    schedule 02.12.2015
comment
Господи, мой поисковик не работал целых 4 месяца, пока я случайно не обнаружил это...   -  person Avatar    schedule 07.05.2016
comment
Google следует обновить руководство по расширению Chrome, так как оно использует поиск изображений Google. Что, очевидно, не работает, как показывает учебник.   -  person Brain2000    schedule 19.04.2017


Ответы (9)


Ответ, который я нашел, заключался в использовании API Google Custom Search Engine (CSE). Обратите внимание, что это ограничено 100 бесплатными запросами в день.

Создание cx и изменение его для поиска изображений

  1. Создайте систему пользовательского поиска на странице https://cse.google.com/cse/create/new на основе вашего поиска. критерии.
  2. Выберите сайты для поиска (оставьте это поле пустым, если вы хотите искать по всему Интернету, в противном случае вы можете ввести сайт для поиска на одном конкретном сайте)
  3. Введите имя и язык для вашей поисковой системы.
  4. Нажмите «создать». Теперь вы можете найти cx в URL вашего браузера.
  5. В разделе «Изменить поисковую систему» ​​нажмите кнопку «Панель управления». В разделе «Редактировать» вы найдете метку «Поиск изображений» с кнопкой ВКЛ/ВЫКЛ, измените ее на ВКЛ. Нажмите «обновить», чтобы сохранить изменения.

Проведение поиска с помощью 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

person Vijay Shegokar    schedule 03.12.2015
comment
Это хорошее решение, но учтите, что для этого API существует квота. 100 запросов в день бесплатно. После этого 5 долларов за 1000 запросов. Даже при включенном биллинге количество запросов не может превышать 10 000 в день при максимальной скорости 1 запрос в секунду. - person alzy; 04.12.2015
comment
Не забудьте выбрать сайт для поиска. Выполняйте поиск по всему Интернету, но выделяйте включенные сайты - person Zhang LongQI; 18.03.2017
comment
Вам нужно ввести что-то в разделе «Типы Image.org» в разделе «Дополнительно», прежде чем он позволит вам создать систему пользовательского поиска. Затем вы можете удалить тег при включении поиска изображений. - person Brain2000; 19.04.2017
comment
Как насчет поиска изображений по загруженному вами изображению? - person Michael; 10.05.2017
comment
@Michael Вы можете сделать что-то подобное, используя Vision API. - person Evan Zamir; 17.02.2018
comment
Google теперь требует, чтобы вы указали сайт для поиска: вы должны ввести хотя бы один сайт или схему, прежде чем создавать поисковую систему. - person Dexter; 04.09.2018
comment
@Dexter (и все остальные ...) Очевидно, они похоронили возможность поиска по всей сети в меню «Настройка». Таким образом, вы можете создать собственную поисковую систему для случайного домена, сохранить ее, а затем перейти в «Правка › Настройка», удалить домен и включить «Поиск по всему Интернету». - person Alladinian; 06.10.2018

Теперь вы можете искать изображения с помощью пользовательского 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.

Консоль API Google

Нажмите кнопку Создать проект, введите имя и другую необходимую информацию. Выберите этот проект и перейдите к разделу Включить API project dashboard Теперь найдите систему пользовательского поиска.

«пользовательский и включите его.

«Включить

Теперь мы должны перейти в Credentials и создать новый ключ сервера:

Создать ключ сервера

В порядке. Теперь мы можем использовать поиск изображений.

Запрос:

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 изображений в день. Спасибо за внимание.

person aftamat4ik    schedule 10.03.2016

Если это только для ваших собственных целей (не для производства) и вы не планируете злоупотреблять поиском картинок 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("&quot", "") + "\" border=1/></a>";

        } catch (Exception e) {
            System.out.println(e);
        }

        return finRes;
    }

Руководство:

вопрос - условие поиска изображения

ua - пользовательский агент браузера

person jjj    schedule 06.12.2015

После того, как я прочитал несколько ответов, я составил ответ с изображениями:

  1. Зайдите на веб-сайт: https://developers.google.com/custom-search/v1/introduction, на странице вы найдете эту часть, поэтому нажмите кнопку Получить ключ:

Страница для получения ключа

  1. Создайте или выберите проект, а затем ДАЛЕЕ:

Выберите проект или создайте новый

  1. Скопируйте КЛЮЧ API:

Скопируйте КЛЮЧ API

  1. Зайдите на веб-сайт, чтобы создать свой CX: https://cse.google.com/cse/create/new, напишите какой-нибудь случайный домен, например «www.anypage.com» (после того, как мы удалим), выберите язык и определите какое-нибудь имя для вашей поисковой системы. Нажмите кнопку СОЗДАТЬ.

Создание клиентского опыта

  1. Увидит эту страницу, затем нажмите Панель управления:

Панель управления

  1. Скопируйте ID поисковой системы на будущее (это ваш CX). После того, как вы сможете настроить поиск на всех веб-сайтах (включите Поиск по всему Интернету), выберите на случайном веб-сайте www.anypage.com, затем нажмите кнопку Удалить) и активируйте Поиск изображений. Итак, увидим так:

Панель управления настройками

  1. И Используя 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

  1. После установки вашего API_KEY (key) и вашего SEARCH ENGINE KEY (cx) результат будет выглядеть так: :

Результат

Спасибо @Vijay Shegokar, @aftamat4ik и @Alladinian

person Cava    schedule 29.06.2020

Измените URL API на Пользовательский поиск изображений Google.

Укажите те же параметры вместе с API KEY и CX.

Дополнительная информация и Проводник

person Pir Abdul    schedule 02.12.2015
comment
Новый Google API позволит вам использовать только 100 запросов в день! Зачем ! это было лучше всего :( !! Google нужны деньги - person satyres; 03.12.2015
comment
можно сделать больше 100, но не бесплатно - person Shawn; 14.04.2016
comment
Я могу думать только о бесплатных поисках :) - person Pir Abdul; 23.08.2017

Это полный шаблон URL, который будет использоваться.

Мы можем удалить ненужные параметры.

https://www.googleapis.com/customsearch/v1?q={searchTerms }&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&cref={cref?}&sort={sort?}&filter={filter?}&gl ={gl?}&cr={cr?}&googlehost={googleHost?}&c2coff={disableCnTwTranslation?}&hq={hq?}&hl={hl?}&siteSearch={siteSearch?}&siteSearchFilter={siteSearchFilter?}&exactTerms={ excludeTerms?}&excludeTerms={excludeTerms?}&linkSite={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType} &fileType={fileType?}&rights={rights?}&imgSize={imgSize?}&imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor?}&alt=json

Я использую

https://www.googleapis.com/customsearch/v1?key=ap_key&cx=cx&q=hello&searchType=image&imgSize=xlarge&alt=json&num=10&start=1

person Md. Parvez Alam    schedule 02.12.2015
comment
не забудьте поместить URL в двойные кавычки. - person CKM; 24.10.2017
comment
Поиск картинок не работает. ` { ошибка: {код: 500, сообщение: ноль } } ` - person dryleaf; 21.11.2018

API Yahoo Boss является разумной заменой, хотя она не бесплатна и результаты не совсем такие хорошо.

ОБНОВЛЕНИЕ: API поиска YAHOO BOSS JSON будет прекращено 31 марта 2016 г.

person alzy    schedule 03.12.2015

SerpAPI позволяет выполнять поиск по изображениям Google и возвращает чистый json. он интегрируется с большинством языков программирования: python, php, java, golang, nodejs...

https://serpapi.com/images-results

Google ограничивает количество запросов в день. но этот сервис предоставляет неограниченные поиски...

person jvmvik    schedule 05.12.2018

Похоже, нам нужно внедрить API пользовательского поиска Google https://developers.google.com/custom-search/ так написано в верхней части страницы, которую вы предоставили сами

person Jaap Koelewijn    schedule 02.12.2015
comment
пожалуйста, пересмотрите свой ответ, кажется, он неверен - person Gautam Jain; 06.06.2020