谷歌图片search说,API不再可用

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

它是正式closures还是我身边的任何错误

请求

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} 

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

创buildcx并修改它以search图像

  1. 根据您的search条件,在https://cse.google.com/cse/create/new创build自定义search引擎。;
  2. select要search的网站(如果要search整个网站,请将其留空;否则,您可以进入要在某个特定网站中search的网站)
  3. 为您的search引擎input一个名称和一种语言。
  4. 点击“创build”。 您现在可以在您的浏览器URL中findcx
  5. 在“修改您的search引擎”下,点击“控制面板”button。 在“编辑”部分,您将find带有“开/关”button的“图像search”标签,将其更改为 。 点击“更新”保存您的更改。

用API进行search

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

以下JSON参数用于此API:

  • q :指定search文本
  • num :指定结果的数量。 需要1到10之间的整数值(包含)
  • start :结果的“偏移量”,这导致search应该从开始。 需要1到101之间的整数值。
  • imgSize :图像的大小。 我用"medium"
  • searchType :必须设置为"image"
  • filetype :指定图像的文件types。 我使用了“jpg”,但是如果文件扩展名对你无关紧要,你可以不要这样做。
  • key :从https://console.developers.google.com/获取的API密钥;
  • cx :上一节中的自定义search引擎ID

通过将以上参数作为JSON传递给API端点(上面也列出),简单地进行GET请求。

注意:如果您在search引擎设置中设置了引用链接列表,则通过浏览器访问url可能无效。 您将需要从此列表中指定的服务器进行AJAX调用(或来自另一种语言的等效项)。 它仅适用于在configuration设置中指定的引用者。

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

现在您可以使用自定义图片searchAPI来search图片。

你可以用两个步骤来做到这一点:

1)获取CUSTOM_SEARCH_ID

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

在这里,您必须创build新的search引擎。 做到这一点,并在那里启用图像search。

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

图像搜索启用

然后得到这个search引擎ID。 按下“获取代码”button:

获取代码按钮

并findcx =“这里将是您的CUSTOM_SEARCH_ID”的行:

获取CSE ID

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

2)获取SERVER_KEY

转到谷歌控制台 – https://console.developers.google.com/project

Google API控制台

按下创build项目button,input名称和其他所需的信息。 select这个项目,然后转到启用Apis 项目仪表板 现在find自定义search引擎。

自定义SE查找 并启用它。

启用自定义搜索

现在我们必须去Credentials并创build新的服务器密钥:

创建服务器密钥

好。 现在我们可以使用图像search。

查询:

 https://www.googleapis.com/customsearch/v1?key=SERVER_KEY&cx=CUSTOM_SEARCH_ID&q=flower&searchType=image&fileType=jpg&imgSize=xlarge&alt=json 

replaceSERVER_KEY和CUSTOM_SEARCH_ID并调用此请求。

限制:免费,每天只能search100张图片。 感谢关注。

如果这仅仅是为了您自己的目的(而不是为了制作)而且您不打算滥用Google图片search,则可以使用JSOUP简单地从Googlesearch结果中提取第一张图片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; } 

指南:

问题 – 图像search术语

ua – 浏览器的用户代理

将APIurl更改为Google自定义图片search

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

更多信息和资源pipe理器

这是要使用的完整url模板

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

https://www.googleapis.com/customsearch/v1?q= {searchTerms}&num = {count?}&start = {startIndex?}&lr = {language?}&safe = {safe?}&cx = {cx?}&cref = {CREF?}&sorting= {sorting?}&滤波器= {滤波器?}&GL = {GL?}&CR = {CR?}&googlehost = {googleHost?}&c2coff = {disableCnTwTranslation?}&HQ = {HQ?}&HL = { HL?}&网站searchfunction= {网站searchfunction?}&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

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

更新:雅虎BOSS JSONsearchAPI将停止在2016年3月31日

看起来像我们需要实现谷歌自定义searchAPI https://developers.google.com/custom-search/这样说,你自己提供的页面顶部;