Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google api 谷歌图像搜索称api不再可用_Google Api_Google Image Search - Fatal编程技术网

Google api 谷歌图像搜索称api不再可用

Google api 谷歌图像搜索称api不再可用,google-api,google-image-search,Google Api,Google Image Search,我正在使用谷歌图像搜索API。直到昨天它还在工作,但今天早上它说“这个API不再可用” 它是正式关闭的,还是我这边有任何错误 请求 响应 {"responseData": null, "responseDetails": "This API is no longer available.", "responseStatus": 403} 将API url更改为 提供与API密钥和CX相同的参数 这是要使用的完整URL模板 我们可以消除不必要的参数。 {searchTerms}&num={c

我正在使用谷歌图像搜索API。直到昨天它还在工作,但今天早上它说“这个API不再可用”

它是正式关闭的,还是我这边有任何错误

请求

响应

{"responseData": null, "responseDetails": "This API is no longer available.", "responseStatus": 403}
将API url更改为

提供与API密钥和CX相同的参数


这是要使用的完整URL模板

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

{searchTerms}&num={count?}&start={startIndex?}&lr={language?}&safe={safe?}&cx={cx?}&cref={cref?}&sort={sort?}&filter={filter}&gl gl gl}&cr={cr?}&googlehost={googlehost?}&c2ccoff={disableCnTwTranslation}&chq={hq}&hl hl hl hl hl chl={siteSearch={siteSearch={siteSearch={filter}&sitesarch={siteSearch}&screerch}&screerch}&screerch}&screerch={screerch}&screerch}&scr={linkSite?}&orTerms={orTerms?}&relatedSite={relatedSite?}&dateRestrict={dateRestrict?}&lowRange={lowRange?}&highRange={highRange?}&searchType={searchType}&fileType={fileType?}&rights={rights}&imgSize={imgType={imgType?}&imgColorType={imgColorType?}&imgDominantColor={imgDominantColor}&json=

我正在使用


看来我们需要实现谷歌定制搜索API
在你自己提供的页面顶部这样说

我找到的答案是使用谷歌的定制搜索引擎(CSE)API。请注意,这限制为每天100个免费请求

创建
cx
并修改它以搜索图像
  • 根据您的搜索条件在创建自定义搜索引擎
  • 选择要搜索的网站(如果要搜索整个网站,请将此项留空,否则可以输入一个网站以在一个特定网站中搜索)
  • 输入搜索引擎的名称和语言
  • 单击“创建”。您现在可以在浏览器URL中找到
    cx
  • 在“修改您的搜索引擎”下,单击“控制面板”按钮。在“编辑”部分,您将找到一个带有开/关按钮的“图像搜索”标签,将其更改为打开。单击“更新”保存更改
  • 使用API进行搜索 API端点url为

    此API使用以下JSON参数:

    • q
      :指定搜索文本
    • num
      :指定结果数。需要介于1和10(含)之间的整数值
    • start
      :结果的“偏移量”,搜索应从哪个结果开始。需要一个介于1和101之间的整数值
    • imgSize
      :图像的大小。我使用了
      “中等”
    • searchType
      :必须设置为
      “image”
    • filetype
      :指定图像的文件类型。我使用了“jpg”,但如果文件扩展名对您不重要,您可以忽略此选项
    • 密钥
      :从
    • cx
      :上一节中的自定义搜索引擎ID
    通过将上述参数作为JSON传递给API端点(也在上面列出),只需发出一个
    GET
    请求

    注意:如果您在搜索引擎设置中设置了一个引用者列表,那么通过浏览器访问URL可能不起作用。您需要进行AJAX调用(或使用其他语言的等效调用)来自此列表中指定的服务器。它仅适用于配置设置中指定的引用者

    参考:

    虽然不是免费的,效果也不是很好,但它是一个合理的替代品


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

    如果这只是为了您自己的目的(不是为了生产),并且您不打算滥用谷歌图像搜索,您可以使用从谷歌搜索结果中提取第一个图像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;
        }
    
    publicstaticstringfindimage(字符串问题,字符串ua){
    字符串finRes=“”;
    试一试{
    字符串googleUrl=”https://www.google.com/search?tbm=isch&q=“+问题.替换(“,”,”);
    Document doc1=Jsoup.connect(googleUrl).userAgent(ua).timeout(10*1000.get();
    Element media=doc1.select(“[data src]”)。first();
    字符串finUrl=media.attr(“abs:data src”);
    finRes=“”;
    }捕获(例外e){
    系统输出打印ln(e);
    }
    返回finRes;
    }
    
    指南:

    问题-图像搜索词


    ua-浏览器的用户代理

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

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

    1) 获取自定义搜索ID

    转到-

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

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

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

    还有一行带有cx=“这将是您的自定义搜索ID”:

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

    2) 获取服务器密钥

    转到谷歌控制台-

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

    并启用它

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

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

    查询:

    https://www.googleapis.com/customsearch/v1?key=SERVER_KEY&cx=CUSTOM_SEARCH_ID&q=flower&searchType=image&fileType=jpg&imgSize=xlarge&alt=json
    
    替换服务器密钥和自定义搜索ID并调用此请求

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

    SerpAPI允许通过谷歌图像进行搜索并返回一个干净的json。它集成了大多数编程语言:python、php、java、golang、nodejs

    谷歌限制每天的搜索次数。
    但这项服务提供了无限量的搜索…

    在我阅读了几篇回复后,我
    <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>