Google 自定义搜索 API - 反向图像搜索

Posted

技术标签:

【中文标题】Google 自定义搜索 API - 反向图像搜索【英文标题】:Google Custom Search API - Reverse image search 【发布时间】:2015-01-26 20:39:09 【问题描述】:

我收集了一些缺少相关信息的图片。我希望能够进行谷歌反向图像搜索以查找名称、关键字、指向相似图像的链接等。我知道抓取搜索结果页面违反了 TOS,并且得到了使用自定义的建议搜索 API 是解决此问题的正确方法,但我无法在详细说明反向图像搜索的文档中找到任何内容。如果 API 可以做到这一点,是否有人能够为我指明正确的方向,或者验证它是否实际上受支持?

非常感谢!

【问题讨论】:

我还需要谷歌按图片搜索(反向图片搜索)作为官方API。 【参考方案1】:

至于当前的 API,我没有发现任何关于反向图像搜索功能的提及。除了基于字符串的查询之外,什么都没有。您可以在自定义搜索的详细 API 参考中自行查找。

https://developers.google.com/custom-search/docs/xml_results

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

所以 Google-custom-search 不提供该功能。

查看提供的其他 API 后,它们都没有提供此功能。尝试在此处查看 Google 支持的所有不同类型的 API:

https://developers.google.com/apis-explorer/#p/

因此得出结论,没有通过 Google 的 API 进行反向图像搜索。 (这可能会改变,我不能说什么,看看上面提供的链接)

有些供应商提供付费 API。

TinEye API https://services.tineye.com/TinEyeAPI

白炽灯 API http://incandescent.xyz/pricing/

否则你必须请求谷歌原谅你对你的宠物项目的一点 TOS 违反:)

【讨论】:

有人可以确认情况仍然如此(2018 年 12 月)吗?不幸的是,在我看来,这个答案 4 年后,反向图像搜索并没有发展多少【参考方案2】:

第三方解决方案 SerpApi 支持抓取 Google 反向图像。这是一个免费试用的付费 API。

我们以这张 Danny DeVito 的图片为例:https://i.imgur.com/HBrB8p0.png

示例 python 代码(其他库中也有):

from serpapi import GoogleSearch

params = 
  "engine": "google_reverse_image",
  "google_domain": "google.com",
  "image_url": "https://i.imgur.com/HBrB8p0.png",
  "api_key": "secret_api_key"


search = GoogleSearch(params)
results = search.get_dict()

JSON 响应示例:

...
"image_results": [
  
    "position": 1,
    "title": "Danny DeVito - Wikipedia",
    "link": "https://en.wikipedia.org/wiki/Danny_DeVito",
    "displayed_link": "https://en.wikipedia.org › wiki › Danny_DeVito",
    "snippet": "Daniel Michael DeVito Jr. (born November 17, 1944) is an American actor, comedian, director, producer, and screenwriter. He gained prominence for his ...",
    "cached_page_link": "https://webcache.googleusercontent.com/search?q=cache:EVb7AC9xwHYJ:https://en.wikipedia.org/wiki/Danny_DeVito+&cd=1&hl=en&ct=clnk&gl=us",
    "related_pages_link": "https://www.google.com/search?q=related:https://en.wikipedia.org/wiki/Danny_DeVito&sa=X&ved=2ahUKEwi7uom3wJ_xAhWxHDQIHct6DmQQHzAAegQIBhAQ"
  ,
  
    "position": 2,
    "title": "Danny DeVito - IMDb",
    "link": "https://www.imdb.com/name/nm0000362/",
    "displayed_link": "https://www.imdb.com › name",
    "snippet": "Danny DeVito, Actor: Matilda. Danny DeVito has amassed a formidable and versatile body of work as an actor, producer and director that spans the stage, ...",
    "cached_page_link": "https://webcache.googleusercontent.com/search?q=cache:c6r3v14HA7cJ:https://www.imdb.com/name/nm0000362/+&cd=2&hl=en&ct=clnk&gl=us"
  ,
  
    "position": 3,
    "title": "Danny DeVito - Simple English Wikipedia, the free encyclopedia",
    "link": "https://simple.wikipedia.org/wiki/Danny_DeVito",
    "displayed_link": "https://simple.wikipedia.org › wiki › Danny_DeVito",
    "thumbnail": "https://serpapi.com/searches/60cbb000ce87f8cca8f63685/images/9db7034fa3524b93ce0598116fd3b874800a67b8b9434cd54a009f2be5fd0809.jpeg",
    "thumbnail_destination_url": "https://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Danny_DeVito_by_Gage_Skidmore.jpg/1200px-Danny_DeVito_by_Gage_Skidmore.jpg",
    "image_resolution": "1200 × 1427",
    "snippet": "Daniel Michael \" · Danny\" · DeVito, Jr. (born November 17, 1944) is an American actor, director, producer and screenwriter. He has starred in and directed a number ...",
    "cached_page_link": "https://webcache.googleusercontent.com/search?q=cache:2DR2mxjaZbsJ:https://simple.wikipedia.org/wiki/Danny_DeVito+&cd=32&hl=en&ct=clnk&gl=us",
    "related_pages_link": "https://www.google.com/search?q=related:https://simple.wikipedia.org/wiki/Danny_DeVito&sa=X&ved=2ahUKEwi7uom3wJ_xAhWxHDQIHct6DmQQHzAfegQIFhAQ"
  ,
  ...
]

查看documentation了解更多详情。

免责声明:我在 SerpApi 工作。

【讨论】:

以上是关于Google 自定义搜索 API - 反向图像搜索的主要内容,如果未能解决你的问题,请参考以下文章

如何在目标 c 中使用 Google 自定义搜索进行图像搜索

解析Google自定义搜索API Swift

如何自定义附近地点搜索返回的结果,Google Maps JS API V3

如何将 Google 地图搜索框添加到我的自定义地图?

自定义搜索引擎

谷歌自定义搜索 JSON API