这个Stackoverflow答案指出,谷歌的自定义搜索API允许搜索整个网络。
我真的不在乎结果顺序,但想...
-
在我自己的网站上,使用浏览器JavaScript或至少NodeJS,使用这样的过滤器对整个网络进行图像搜索,并在JavaScript中处理结果(在我的网站上显示结果)
-
还要进行反向图像搜索(查找与特定图像URL相似的图像)
需要明确的是,我不想根据我网站的内容进行搜索,而只想自己显示全球结果。
这是否可能以合法的方式(而不是通过抓取谷歌网站)?
注意我只对公共领域/CC0图像感兴趣(Google可以按许可证过滤图像)。
如果你使用的是Node.js(因为问题被标记了),有一个名为fotology的npm模块可以完成你所问的。它甚至允许按许可证过滤:
let options = {
size: "large", // large images only
language: "fr", // French
safe: true, // force safe search on
color: "white", // white cats only please
rights: "cc_publicdomain" // Only public domain images
}
fotology("cats", options)
.then(function (imageURLs) {
for (i in imageURLs)
console.log imageURLs[i];
});
免责声明:我是该特定版本的模块的作者(原始模块不允许按图像许可证过滤)
由于此API不再可用,您可以使用我们的第三方服务(如SerpApi)来抓取Google并恢复结构化JSON。
使用 Node.js 库的示例:
var gsr = require('GoogleSearchResults')
let serp = new gsr.GoogleSearchResults("demo")
serp.json_with_images({
q: "Cats Meme",
location: "Portland"
}, (result) => {
console.log(result)
})
我今天(2018 年)知道的唯一图像搜索 API 是必应 API。我过去使用过雅虎和谷歌,但他们都停止了运营。
您每月获得 1000 次免费搜索,此后大约是 5/1000 次搜索。我昨晚刚刚实现了它;效果很好。