我正在使用谷歌图片搜索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}
答案 0 :(得分:104)
我找到的答案是使用Google的自定义搜索引擎(CSE)API。请注意,这仅限于每天100次免费请求。
cx
并修改它以搜索图像cx
。 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/ 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
在这里,您必须创建新的搜索引擎。这样做并在那里启用图像搜索。
屏幕(我是俄罗斯人......抱歉)
然后获取此搜索引擎ID。要执行此操作,请按“获取代码”按钮:
找到行cx =“这里将是你的CUSTOM_SEARCH_ID”:
确定。它已经完成,现在是第二步:
2)获取SERVER_KEY
转到Google控制台 - https://console.developers.google.com/project
按下创建项目按钮,输入名称和其他所需信息。 选择此项目并转到启用Apis 现在找到自定义搜索引擎。
现在我们必须转到凭据并创建新的服务器密钥:
确定。现在我们可以使用图片搜索了。
<强>查询:强>
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(""", "") + "\" border=1/></a>";
} catch (Exception e) {
System.out.println(e);
}
return finRes;
}
指南:
问题 - 图片搜索术语
ua - 浏览器的用户代理
答案 3 :(得分:3)
答案 4 :(得分:3)
在我阅读了几个回复后,我用图像编译了一个回复:
<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
感谢@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
我正在使用
答案 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/ 在你自己提供的页面上这么说