【问题标题】:Bing image search API (cognitive) returns broken links?必应图像搜索 API(认知)返回损坏的链接?
【发布时间】:2020-09-19 01:57:51
【问题描述】:

我正在使用 Azure 认知服务,更准确地说是“必应图像搜索服务”。 我发送请求以获取与特定关键字相关的图像。

为此,我向正确的 Azure 端点发出 HTTP REST 请求:

'https://api.cognitive.microsoft.com/bing/v7.0/images/search?q=MYKEYWORD'

它适用于很多请求和结果。

但是,在服务的 json 响应中的某些图像中,“contentUrl”字段为我提供了指向托管图像的网站的断开链接(例如,某些不同的 wordpress 网站上的 404 或 403)。

因此,由于“contentUrl”链接而尝试下载图像的程序崩溃(或必须至少抛出异常)。

我猜这是因为网站发生了变化(通过删除他们托管的图像)并且 bing 没有更新其数据库(或者爬虫没有时间这样做)。

所以我不知道该怎么办:'(

任何帮助/建议?

【问题讨论】:

    标签: azure microsoft-cognitive bing-api azure-cognitive-services


    【解决方案1】:

    是的,你是对的,contentUrl 可能是过时的缓存删除。

    默认情况下,Bing 会返回缓存的内容(如果有)。防止必应 从返回缓存的内容,将 Pragma 标头设置为 no-cache(对于 例如,编译指示:无缓存)。

    您可以查看此文档中的 Pragma 标头:Headers

    【讨论】:

    • 非常感谢!不知道那个 HTTP 标头。我认为 Azure / Bing API 文档应该更多地强调这一点,因为 404 / 403 HTTP 错误在结果链接中很常见。
    • 我注意到,即使我添加了标头 Pragma: no-cache,bing API 提供的链接仍然存在错误(404、500、..)。我不知道该怎么办:'(
    猜你喜欢
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 2019-02-18
    相关资源
    最近更新 更多