Google 图片搜索显示 api 不再可用
Google image search says api no longer available
我正在使用 google 图片搜索 API。直到昨天它还在工作,但今天早上它说 "This API is no longer available"
是否正式关闭,或者我这边有什么错误
请求
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}
将APIurl改为
Google Custom Image search
提供相同的参数以及 API KEY 和 CX。
这是要使用的完整 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
我正在使用
看来我们需要实施 google 自定义搜索 API
https://developers.google.com/custom-search/
在您自己提供的页面顶部这样说
我找到的答案是使用 Google 的自定义搜索引擎 (CSE) API。请注意,这仅限于每天 100 个免费请求。
正在创建 cx
并对其进行修改以搜索图像
- 根据您的搜索条件在 https://cse.google.com/cse/create/new 创建自定义搜索引擎。
- 选择要搜索的站点(如果要搜索整个网络,请留空,否则您可以输入一个站点在特定站点中搜索)
- 为您的搜索引擎输入名称和语言。
- 单击 "create." 您现在可以在浏览器中找到
cx
URL。
- 在 "Modify your search engine," 下单击 "Control Panel" 按钮。在 "edit" 部分,您会找到一个带有 ON/OFF 按钮的 "Image Search" 标签,将其更改为 ON。单击 "update" 保存您的更改。
正在使用 API
进行搜索
API 端点 url 是 https://www.googleapis.com/customsearch/v1
以下 JSON 参数用于此 API:
q
: 指定搜索文本
num
:指定结果数。需要 1 到 10(含)之间的整数值
start
:结果的 "offset",搜索应该从哪个结果开始。需要 1 到 101 之间的整数值。
imgSize
:图片的大小。我用了 "medium"
searchType
:必须设置为"image"
filetype
:指定图像的文件类型。我使用了`"jpg",但如果文件扩展名对你来说不重要,你可以忽略它。
key
:一个API键,从https://console.developers.google.com/ 获得
cx
: 上一节中的自定义搜索引擎ID
只需将上述参数作为 JSON 传递给 API 端点(也在上面列出),即可发出 GET
请求。
注意: 如果您在搜索引擎设置中设置了引荐列表,则通过浏览器访问 URL 可能无法正常工作。您将需要从此列表中指定的服务器进行 AJAX 调用(或其他语言的等效调用)。它仅适用于在配置设置中指定的引荐来源网址。
参考:
https://developers.google.com/custom-search/json-api/v1/reference/cse/list
Yahoo Boss API 是一个合理的替代品,尽管它不是免费的,而且效果也不那么好。
更新:YAHOO BOSS JSON 搜索 API 将于 2016 年 3 月 31 日停止服务
如果这只是为了您自己的目的(不是为了生产)并且您不打算滥用 Google 图片搜索,您可以简单地从 [=26= 中提取第一张图片 URL ] 使用 JSOUP 搜索结果。
例如:
检索第一个缩略图的图像 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 - 浏览器的用户代理
现在您可以使用自定义图片搜索来搜索图片 API。
您可以通过两个步骤完成此操作:
- 获取CUSTOM_SEARCH_ID
转到 - https://cse.google.ru/cse/all
在这里您必须创建新的搜索引擎。执行此操作并在此处启用图片搜索。
屏幕(我是俄罗斯人...抱歉)
然后得到这个搜索引擎ID。为此,请按“获取代码”按钮:
找到 cx = "here will be your CUSTOM_SEARCH_ID":
好的。完成,现在是第二步:
- 得到SERVER_KEY
转到 google 控制台 - https://console.developers.google.com/project
按创建项目按钮,输入名称和其他所需信息。
选择这个项目并转到 Enable 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张图片。
SerpAPI 可以搜索 Google 图像和 returns 干净的 json。它集成了大多数编程语言:python、php、java、golang、nodejs...
https://serpapi.com/images-results
Google限制每天的搜索次数。
但此服务提供无限搜索...
在我阅读了几个回复后,我用图片编辑了一个回复:
- 访问网站:https://developers.google.com/custom-search/v1/introduction,在页面上你会找到这部分,所以点击按钮获取密钥:
- 创建或select一个项目,然后NEXT:
- 复制API键:
- 访问网站创建你的CX:https://cse.google.com/cse/create/new,写一些随机域,如“www.anypage.com”,(我们将删除后),select一种语言,并定义一些搜索引擎的名称。单击按钮 创建。
- 会看到这个页面,然后在控制面板中点击:
- 复制 搜索引擎 ID 以备后用(这是您的 CX)。之后可以设置在所有网站搜索(主动搜索全网,select随机网站www.anypage.com然后点击按钮删除),你就可以激活图片搜索。所以会看到这样:
- 并且使用 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
- 设置您的API_KEY(密钥)和您的SEARCH ENGINE KEY (cx),结果会是这样:
感谢@Vijay Shegokar、@aftamat4ik 和@Alladinian
我正在使用 google 图片搜索 API。直到昨天它还在工作,但今天早上它说 "This API is no longer available"
是否正式关闭,或者我这边有什么错误
请求
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}
将APIurl改为 Google Custom Image search
提供相同的参数以及 API KEY 和 CX。
这是要使用的完整 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
我正在使用
看来我们需要实施 google 自定义搜索 API https://developers.google.com/custom-search/ 在您自己提供的页面顶部这样说
我找到的答案是使用 Google 的自定义搜索引擎 (CSE) API。请注意,这仅限于每天 100 个免费请求。
正在创建 cx
并对其进行修改以搜索图像
- 根据您的搜索条件在 https://cse.google.com/cse/create/new 创建自定义搜索引擎。
- 选择要搜索的站点(如果要搜索整个网络,请留空,否则您可以输入一个站点在特定站点中搜索)
- 为您的搜索引擎输入名称和语言。
- 单击 "create." 您现在可以在浏览器中找到
cx
URL。 - 在 "Modify your search engine," 下单击 "Control Panel" 按钮。在 "edit" 部分,您会找到一个带有 ON/OFF 按钮的 "Image Search" 标签,将其更改为 ON。单击 "update" 保存您的更改。
正在使用 API
进行搜索API 端点 url 是 https://www.googleapis.com/customsearch/v1
以下 JSON 参数用于此 API:
q
: 指定搜索文本num
:指定结果数。需要 1 到 10(含)之间的整数值start
:结果的 "offset",搜索应该从哪个结果开始。需要 1 到 101 之间的整数值。imgSize
:图片的大小。我用了"medium"
searchType
:必须设置为"image"
filetype
:指定图像的文件类型。我使用了`"jpg",但如果文件扩展名对你来说不重要,你可以忽略它。key
:一个API键,从https://console.developers.google.com/ 获得
cx
: 上一节中的自定义搜索引擎ID
只需将上述参数作为 JSON 传递给 API 端点(也在上面列出),即可发出 GET
请求。
注意: 如果您在搜索引擎设置中设置了引荐列表,则通过浏览器访问 URL 可能无法正常工作。您将需要从此列表中指定的服务器进行 AJAX 调用(或其他语言的等效调用)。它仅适用于在配置设置中指定的引荐来源网址。
参考: https://developers.google.com/custom-search/json-api/v1/reference/cse/list
Yahoo Boss API 是一个合理的替代品,尽管它不是免费的,而且效果也不那么好。
更新:YAHOO BOSS JSON 搜索 API 将于 2016 年 3 月 31 日停止服务
如果这只是为了您自己的目的(不是为了生产)并且您不打算滥用 Google 图片搜索,您可以简单地从 [=26= 中提取第一张图片 URL ] 使用 JSOUP 搜索结果。
例如: 检索第一个缩略图的图像 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 - 浏览器的用户代理
现在您可以使用自定义图片搜索来搜索图片 API。
您可以通过两个步骤完成此操作:
- 获取CUSTOM_SEARCH_ID
转到 - https://cse.google.ru/cse/all
在这里您必须创建新的搜索引擎。执行此操作并在此处启用图片搜索。
屏幕(我是俄罗斯人...抱歉)
然后得到这个搜索引擎ID。为此,请按“获取代码”按钮:
找到 cx = "here will be your CUSTOM_SEARCH_ID":
好的。完成,现在是第二步:
- 得到SERVER_KEY
转到 google 控制台 - https://console.developers.google.com/project
按创建项目按钮,输入名称和其他所需信息。
选择这个项目并转到 Enable 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张图片。
SerpAPI 可以搜索 Google 图像和 returns 干净的 json。它集成了大多数编程语言:python、php、java、golang、nodejs...
https://serpapi.com/images-results
Google限制每天的搜索次数。 但此服务提供无限搜索...
在我阅读了几个回复后,我用图片编辑了一个回复:
- 访问网站:https://developers.google.com/custom-search/v1/introduction,在页面上你会找到这部分,所以点击按钮获取密钥:
- 创建或select一个项目,然后NEXT:
- 复制API键:
- 访问网站创建你的CX:https://cse.google.com/cse/create/new,写一些随机域,如“www.anypage.com”,(我们将删除后),select一种语言,并定义一些搜索引擎的名称。单击按钮 创建。
- 会看到这个页面,然后在控制面板中点击:
- 复制 搜索引擎 ID 以备后用(这是您的 CX)。之后可以设置在所有网站搜索(主动搜索全网,select随机网站www.anypage.com然后点击按钮删除),你就可以激活图片搜索。所以会看到这样:
- 并且使用 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
- 设置您的API_KEY(密钥)和您的SEARCH ENGINE KEY (cx),结果会是这样:
感谢@Vijay Shegokar、@aftamat4ik 和@Alladinian