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


77

我正在使用Google Image Search API。到昨天为止,它一直在工作,但是今天早上,它说:“此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}

2
同样的事情发生在我身上。互联网上似乎没有其他可行的选择。感谢Google。superfeedr声称能够工作,但是经过数小时试图弄清他们可怕的文档之后,您无法做上面的事情。我希望有人尽快实施解决方案:(
Scotty Bollinger

3
天哪,直到我偶然发现这个问题,我的搜索引擎才整整四个月没有运作……
Kai Noack

3
Google使用Google图片搜索,因此应更新其Chrome扩展程序教程。显然,这在本教程中不起作用。
Brain2000 '17

Answers:


120

我找到的答案是使用Google的自定义搜索引擎(CSE)API。请注意,每天最多只能有100个免费请求。

创建cx和修改它以搜索图像

  1. 根据您的搜索条件,在https://cse.google.com/cse/create/new创建自定义搜索引擎。
  2. 选择要搜索的站点(如果要搜索整个网络,请保留此空白,否则可以输入要在一个特定站点中搜索的站点)
  3. 输入搜索引擎的名称和语言。
  4. 点击“创建”。现在cx,您可以在浏览器URL中找到。
  5. 在“修改搜索引擎”下,单击“控制面板”按钮。在“编辑”部分,您将找到带有“打开/关闭”按钮的“图像搜索”标签,将其更改为“打开”。单击“更新”以保存您的更改。

使用API​​进行搜索

API端点网址为 https://www.googleapis.com/customsearch/v1

以下JSON参数用于此API:

  • q:指定搜索文字
  • num:指定结果数。需要1到10(包括10)之间的整数值
  • start:结果的“偏移量”,搜索应从该结果开始。需要1到101之间的整数值。
  • imgSize:图像的大小。我用了"medium"
  • searchType:必须设置为 "image"
  • filetype:指定图像的文件类型。我使用了“ jpg”,但是如果文件扩展名对您来说无关紧要,则可以将其省略。
  • key:从https://console.developers.google.com/获得的API密钥
  • cx:上一部分中的自定义搜索引擎ID

只需GET通过将上述参数作为JSON传递到API端点(也在上面列出)来发出请求。

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

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


9
这是一个很好的解决方案,但请注意,此API上有配额。每天免费提供100个查询。之后,每1,000个查询$ 5。即使启用了计费,您每天也不能超过10,000个查询,最大速率为每秒1个查询。
alzy 2015年

1
如何在新闻中搜索(非图片)
Bashar Abu Shamaa

2
您需要先在Image.org类型下的Advanced下输入一些内容,然后才能创建自定义搜索引擎。然后,您可以在打开图像搜索时删除标签。
Brain2000 '17

3
Google现在要求您放入一个站点进行搜索:“创建搜索引擎之前,您必须至少输入一个站点或架构。”
Dexter

8
@Dexter(&其他所有人...)显然,他们已经在“设置”菜单中隐藏了搜索整个网络的选项。因此,您可以为随机域创建一个自定义搜索引擎,将其保存,然后转到“编辑>设置”,删除该域并启用“搜索整个网络”。
Alladinian

26

现在,您可以使用自定义图像搜索API搜索图像。

您可以通过两个步骤进行操作:

1)获取CUSTOM_SEARCH_ID

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

在这里,您必须创建新的搜索引擎。这样做并在那里启用“图像搜索”。

屏幕(我是俄罗斯人...对不起)

图像搜索启用

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

获取代码按钮

并找到带有cx =“这是您的CUSTOM_SEARCH_ID”的行:

获取CSE ID

好。完成,现在第二步:

2)获取SERVER_KEY

转到Google控制台-https: //console.developers.google.com/project

Google API控制台

按下创建项目按钮,输入名称和其他所需信息。选择此项目,然后转到“立即启用Apis 项目仪表板 ”查找自定义搜索引擎。

自定义SE查找 并启用它。

启用自定义搜索

现在,我们必须转到凭据并创建新的服务器密钥:

创建服务器密钥

好。现在我们可以使用图像搜索了。

查询:

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张图像。感谢您的关注。


8

如果这仅是出于您的目的(而不是用于生产),并且您不打算滥用Google Image Search,则可以使用JSOUP从Google搜索结果中提取第一个图像URL 。

例如: 检索第一个缩略图的图像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-浏览器的用户代理



3

这是要使用的完整URL模板

我们可以消除不必要的参数。

https://www.googleapis.com/cn/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? }&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


1
不要强行将网址放在双引号中。
CKM

搜索图像不起作用。`{“ error”:{“ code”:500,“ message”:null}}`
dryleaf

3

阅读多个回复后,我用图像编译了一个回复:

  1. 访问网站:https : //developers.google.com/custom-search/v1/introduction,在该页面上您会找到该部分,因此请单击获取密钥按钮:

页面获取密钥

  1. 创建或选择一个项目,然后选择NEXT

选择一个项目,或创建一个

  1. 复制API密钥:

复制API密钥

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

创建您的CX

  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_KEYkey)和SEARCH ENGINE KEYcx)之后,结果将如下所示:

结果

感谢@Vijay Shegokar,@ aftamat4ik和@Alladinian


0

雅虎老板API是一个合理的替代品,但它不是免费的,结果不太好。

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



-2

SerpAPI可以搜索Google图片并返回干净的json。它与大多数编程语言集成:python,php,java,golang,nodejs ...

https://serpapi.com/images-results

Google限制每天的搜索次数。但是这项服务提供了无限的搜索...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.