【问题标题】:Can I embed Google Image search into my html5 webpage我可以将 Google 图片搜索嵌入到我的 html5 网页中吗
【发布时间】:2018-03-20 11:40:27
【问题描述】:

我想要做的是让用户点击我网站上的按钮(实际上是一个在用户机器上本地运行的 web 应用程序,因此每个实例都是单个用户),这会启动具有各种参数设置和显示的谷歌图像搜索结果在我的 html 页面的一部分中。

这是因为他们可以选择一张图片并将其拖放到我网页上的放置区。这部分有效,但目前搜索正在新标签中打开,因此从该标签拖动到我的标签有点痛苦。

嵌入为 iframe 不起作用,Google 不允许这样做。

所以

a> 是否有 Google 认可的 API 可用于执行 Google 搜索图像并在我的页面中显示。

b> 我可以从我的服务器发送一个 url 请求吗(例如 curl/wget 然后截屏显示结果并显示在网页上

【问题讨论】:

    标签: html google-search


    【解决方案1】:

    Google 的自定义搜索引擎 (CSE) API 限制为每天 100 个免费请求。

    创建cx 并对其进行修改以搜索图像

    1. 根据您的搜索条件在https://cse.google.com/cse/create/new 创建自定义搜索引擎。
    2. 选择要搜索的网站(如果您想搜索整个网络,请将此留空,否则您可以输入一个网站以在一个特定网站中搜索)
    3. 输入搜索引擎的名称和语言。
    4. 单击“创建”。您现在可以在浏览器网址中找到cx
    5. 在“修改您的搜索引擎”下,单击“控制面板”按钮。在“编辑”部分,您会找到一个带有开/关按钮的“图像搜索”标签,将其更改为 ON。点击“更新”以保存您的更改。

    使用 API 进行搜索

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

    以下 JSON 参数用于此 API:

    • q:指定搜索文本
    • num:指定结果数。需要 1 到 10(含)之间的整数值
    • start:结果的“偏移量”,搜索应该从哪个结果开始。需要 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

    答案来自:https://stackoverflow.com/a/34062436/4366303

    【讨论】:

    • 因此,如果我必须将所有客户的电话限制为每天 100 个,将每个客户限制为 100 个可能没问题,但这意味着他们必须有一个谷歌帐户并自己创建搜索,这行得通吗?
    • 100 个免费请求。如果您愿意支付费用,您可以提出任意数量的请求。 developers.google.com/custom-search/json-api/v1/…
    • 截至目前,额外请求的费用为每 1000 次查询 5 美元,每天最多 10k 次查询。上面的链接解释了它。
    • 是的,但我无法控制我的用户会提出多少请求,而且对于这种低成本软件来说太贵了。
    • 他们每个人都在本地运行应用程序,所以他们没有访问一个网站,大多数人实际上不会使用搜索,但有些人会。好的,我已将您的问题标记为正确,因为它很好地解释了如何使用自定义搜索
    【解决方案2】:

    Google 已停用图像搜索 API,它不再可用(请参阅此 SO 线程以及替代方案)。

    如果你打开你提供的网址,它会这样说:

    {"responseData": null, "responseDetails": "This API is no longer available.", "responseStatus": 403}
    

    【讨论】:

    • 听起来我需要使用 Google 自定义搜索,但我该怎么做
    • @PaulTaylor 这是因为 DEEPAK BHOSALE 将其编写为代码,而 stackoverflow 的系统将其删除。需要使用该链接编辑答案。
    猜你喜欢
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 2011-07-15
    • 2013-06-18
    • 2016-07-27
    • 1970-01-01
    相关资源
    最近更新 更多