Google 图片搜索显示 api 不再可用

Google image search says api no longer available

我正在使用 google 图片搜索 API。直到昨天它还在工作,但今天早上它说 "This API is no longer available"

是否正式关闭,或者我这边有什么错误

请求

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}

将APIurl改为 Google Custom Image search

提供相同的参数以及 API KEY 和 CX。

More Info and Explorer

这是要使用的完整 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={exactTerms?}&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

看来我们需要实施 google 自定义搜索 API https://developers.google.com/custom-search/ 在您自己提供的页面顶部这样说

我找到的答案是使用 Google 的自定义搜索引擎 (CSE) API。请注意,这仅限于每天 100 个免费请求。

正在创建 cx 并对其进行修改以搜索图像

  1. 根据您的搜索条件在 https://cse.google.com/cse/create/new 创建自定义搜索引擎。
  2. 选择要搜索的站点(如果要搜索整个网络,请留空,否则您可以输入一个站点在特定站点中搜索)
  3. 为您的搜索引擎输入名称和语言。
  4. 单击 "create." 您现在可以在浏览器中找到 cx URL。
  5. 在 "Modify your search engine," 下单击 "Control Panel" 按钮。在 "edit" 部分,您会找到一个带有 ON/OFF 按钮的 "Image Search" 标签,将其更改为 ON。单击 "update" 保存您的更改。

正在使用 API

进行搜索

API 端点 url 是 https://www.googleapis.com/customsearch/v1

以下 JSON 参数用于此 API:

  • q: 指定搜索文本
  • num:指定结果数。需要 1 到 10(含)之间的整数值
  • start:结果的 "offset",搜索应该从哪个结果开始。需要 1 到 101 之间的整数值。
  • imgSize:图片的大小。我用了 "medium"
  • searchType:必须设置为"image"
  • filetype:指定图像的文件类型。我使用了`"jpg",但如果文件扩展名对你来说不重要,你可以忽略它。
  • key:一个API键,从https://console.developers.google.com/
  • 获得
  • cx: 上一节中的自定义搜索引擎ID

只需将上述参数作为 JSON 传递给 API 端点(也在上面列出),即可发出 GET 请求。

注意: 如果您在搜索引擎设置中设置了引荐列表,则通过浏览器访问 URL 可能无法正常工作。您将需要从此列表中指定的服务器进行 AJAX 调用(或其他语言的等效调用)。它仅适用于在配置设置中指定的引荐来源网址。

参考: https://developers.google.com/custom-search/json-api/v1/reference/cse/list

Yahoo Boss API 是一个合理的替代品,尽管它不是免费的,而且效果也不那么好。

更新:YAHOO BOSS JSON 搜索 API 将于 2016 年 3 月 31 日停止服务

如果这只是为了您自己的目的(不是为了生产)并且您不打算滥用 Google 图片搜索,您可以简单地从 [=26= 中提取第一张图片 URL ] 使用 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 - 浏览器的用户代理

现在您可以使用自定义图片搜索来搜索图片 API。

您可以通过两个步骤完成此操作:

  1. 获取CUSTOM_SEARCH_ID

转到 - https://cse.google.ru/cse/all

在这里您必须创建新的搜索引擎。执行此操作并在此处启用图片搜索。

屏幕(我是俄罗斯人...抱歉)

然后得到这个搜索引擎ID。为此,请按“获取代码”按钮:

找到 cx = "here will be your CUSTOM_SEARCH_ID":

好的。完成,现在是第二步:

  1. 得到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张图片。

SerpAPI 可以搜索 Google 图像和 returns 干净的 json。它集成了大多数编程语言:python、php、java、golang、nodejs...

https://serpapi.com/images-results

Google限制每天的搜索次数。 但此服务提供无限搜索...

在我阅读了几个回复后,我用图片编辑了一个回复:

  1. 访问网站:https://developers.google.com/custom-search/v1/introduction,在页面上你会找到这部分,所以点击按钮获取密钥

  1. 创建或select一个项目,然后NEXT:

  1. 复制API键:

  1. 访问网站创建你的CX:https://cse.google.com/cse/create/new,写一些随机域,如“www.anypage.com”,(我们将删除后),select一种语言,并定义一些搜索引擎的名称。单击按钮 创建

  1. 会看到这个页面,然后在控制面板中点击:

  1. 复制 搜索引擎 ID 以备后用(这是您的 CX)。之后可以设置在所有网站搜索(主动搜索全网,select随机网站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密钥)和您的SEARCH ENGINE KEY (cx),结果会是这样:

感谢@Vijay Shegokar、@aftamat4ik 和@Alladinian