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

Md.*_*lam 70 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}
Run Code Online (Sandbox Code Playgroud)

Vij*_*kar 109

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

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

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

使用API​​进行搜索

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

以下JSON参数用于此API:

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

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

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

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

  • 这是一个很好的解决方案,但请注意此API有一个配额.每天100次免费查询.之后每1000个查询5美元.即使启用了结算功能,您每天也不能超过10,000次查询,最高速率为每秒1次查询. (9认同)
  • @Dexter(&其他所有人...)显然,他们已经在“设置”菜单中埋藏了搜索整个网络的选项。因此,您可以为随机域创建一个自定义搜索引擎,将其保存,然后转到“编辑>设置”,删除该域并启用“搜索整个网络”。 (4认同)
  • 您需要在Advanced下的Image.org类型下输入内容,然后才能创建自定义搜索引擎.然后,您可以在打开图像搜索时删除标记. (2认同)
  • Google现在要求您放入一个站点进行搜索:“创建搜索引擎之前,您必须至少输入一个站点或架构。” (2认同)

aft*_*4ik 23

现在您可以使用自定义图像搜索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
Run Code Online (Sandbox Code Playgroud)

替换SERVER_KEY和CUSTOM_SEARCH_ID并调用此请求.

限制:免费,您每天只能搜索100张图片.谢谢你的关注.


jjj*_*jjj 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;
    }
Run Code Online (Sandbox Code Playgroud)

指南:

问题 - 图像搜索术语

ua - 浏览器的用户代理


Cav*_*ava 5

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

  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

创建您的客户体验

  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>

Run Code Online (Sandbox Code Playgroud)

基本代码可在此处找到:https : //developers.google.com/custom-search/v1/using_rest

  1. 设置API_KEY ( key ) 和SEARCH ENGINE KEY ( cx ) 后,结果将如下所示:

结果

感谢@Vijay Shegokar、@aftamat4ik 和@Alladinian


Md.*_*lam 4

这是要使用的完整 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