【发布时间】:2015-07-28 20:53:10
【问题描述】:
我开始在一个项目中使用 Google 自定义搜索 API,其想法是搜索图片,我想使用自定义搜索,因为 Google 图片 API 已被弃用。
我已经在 CSE 控制台上启用了图像搜索
我的查询是这样的:
其中 NUMBER 是 1 到 20 之间的随机值
有时,它会返回如下结果:
{u'kind': u'customsearch#result', u'title': u'Flower Wallpaper Tumblr #6790199', u'displayLink': u'7-themes.com', u'htmlTitle': u'<b>Flower</b> Wallpaper Tumblr #6790199', u'snippet': u'Flower Wallpaper Tumblr', u'htmlSnippet': u'<b>Flower</b> Wallpaper Tumblr', u'link': u'http://7-themes.com/data_images/out/7/6790199-flower-wallpaper-tumblr.jpg', u'mime': u'image/jpeg', u'image': {u'thumbnailWidth': 150, u'byteSize': 808360, u'height': 1200, u'width': 1920, u'contextLink': u'http://7-themes.com/6790199-flower-wallpaper-tumblr.html', u'thumbnailLink': u'https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSad0z_Wla0nRHAcQrjO5jLQkFjcoqnNHhejjuGmdA1AW2BqIVEpLARAk0s', u'thumbnailHeight': 94}}
突出有趣的部分:
u'link': u'http://7-themes.com/data_images/out/7/6790199-flower-wallpaper-tumblr.jpg', u'mime': u'image/jpeg'
所以看起来 URL 是http://7-themes.com/data_images/out/7/6790199-flower-wallpaper-tumblr.jpg,mimetype 是 image/jpeg,但是如果你去 URL,你会发现它不是一个图像,而是一个 HTML 文档
当然,我可以将此捕获为异常,但我不想浪费每日 API 请求(每天 100 个限制),因为当我明确表示时 API 没有给我图像。
所以,问题是:这是正常行为,还是我的错误配置/滥用?如果是这样,我该如何解决?
感谢您的关注
【问题讨论】:
-
虽然我没有足够的信心将此作为答案发布,但我猜测托管图像的网站对其 mimetypes 做了一些可疑的事情。如果服务器要对其托管的内容撒谎,这可能不在谷歌的控制范围内。
-
是的......我也想过这种可能性......我真的希望这是我的错,而不是我无法解决的问题
-
经过一番阅读,看起来服务器正在使用类似于this 的技术,因此外部客户端(包括谷歌爬虫)无法直接访问图像。不过,我不知道如何确认这种情况。这意味着该文件被宣传为图像,但尝试打开它会导致服务器提供 html 文件。
-
是的,即使我从谷歌图片页面执行此操作也会发生...好吧,大概就是这样,将其作为答案发布,以便我接受:)
-
完成了,尽管我们仍然希望有人出现并证明我错了。祝你好运。
标签: google-api google-custom-search