谷歌图片搜索说api不再可用

时间:2015-12-02 05:16:12

标签: google-api 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}

9 个答案:

答案 0 :(得分:104)

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

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

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

    进行搜索

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

    以下JSON参数用于此API:

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

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

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

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

答案 1 :(得分:22)

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

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

1)获取CUSTOM_SEARCH_ID

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

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

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

image search enable

然后获取此搜索引擎ID。要执行此操作,请按“获取代码”按钮:

get code button

找到行cx =“这里将是你的CUSTOM_SEARCH_ID”:

get CSE id

确定。它已经完成,现在是第二步:

2)获取SERVER_KEY

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

Google API Console

按下创建项目按钮,输入名称和其他所需信息。 选择此项目并转到启用Apis project dashboard 现在找到自定义搜索引擎。

custom SE find 并启用它。

Enable Custom Search

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

Create server Key

确定。现在我们可以使用图片搜索了。

<强>查询:

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张图片。 谢谢你的关注。

答案 2 :(得分:6)

如果这只是出于您自己的目的(而不是用于制作),并且您不打算滥用Google图片搜索,则只需使用JSOUP从Google搜索结果中提取第一张图片网址即可。

例如: 用于检索第一个缩略图的图像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 :(得分:3)

将API网址更改为 Google Custom Image search

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

More Info and Explorer

答案 4 :(得分:3)

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

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

Page to get a key

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

Select a project, or create a one

  1. 复制API密钥:

Copy the API KEY

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

Creating your CX

  1. 将看到此页面,然后在控制面板中单击:

Control Panel

  1. 复制搜索引擎ID 以供以后使用(这是您的 CX )。可以设置为在所有网站中搜索之后(活动的搜索整个网络,然后在随机网站 www.anypage.com 中选择,然后单击按钮删除< / strong>),您可以激活图片搜索。所以会看到这样:

Settings Controle Panel

  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 )之后,结果将看到这样:

Result

感谢@Vijay Shegokar,@ aftamat4ik和@Alladinian

答案 5 :(得分:2)

这是要使用的完整网址模板

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

https://www.googleapis.com/customsearch/v1?q=的{searchTerms}试验#= {计数?}&安培;开始= {的startIndex?}&安培; LR = {语言?}&安培;安全= {?安全}&安培; CX = {CX? }&安培; CREF = {CREF}&安培;排序= {排序}&安培;过滤器= {滤波器}&安培; GL = {GL}&安培; CR = {CR}&安培;?googlehost = {googleHost}&安培; c2coff = {disableCnTwTranslation?}&安培; HQ = {HQ?}&安培; HL = {HL?}&安培;网站搜索功能= {网站搜索功能?}&安培; siteSearchFilter = {siteSearchFilter?}&安培; exactTerms = {exactTerms?}&安培; excludeTerms = {excludeTerms?}&安培; linkSite = {linkSite?}&安培; orTerms = {?orTerms}&安培; relatedSite = {relatedSite?}&安培; dateRestrict = {dateRestrict?}&安培; lowRange = {?lowRange}&安培;高变速= {高变速}&安培;检索类别= {检索类别}&安培;的fileType = {的fileType}&安培;权利= {权利}&安培; 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

答案 6 :(得分:0)

Yahoo Boss API是一个合理的替代品,虽然它不是免费的,结果也不是很好。

更新:YAHOO BOSS JSON Search API将于2016年3月31日停止

答案 7 :(得分:-1)

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

https://serpapi.com/images-results

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

答案 8 :(得分:-2)

看起来我们需要实施Google自定义搜索API https://developers.google.com/custom-search/ 在你自己提供的页面上这么说