我有C#代码从http://i.imgur.com/QvkaduU.jpg这样的网址中获取图片,但是我如何从这样的网页中获取图像:http://imgur.com/gallery/QvkaduU?
有没有“简单”的方法来做到这一点,或者我将不得不获取HTML并构建一个C#解析器,它在HTML中查找比其他图像更大的图像?
让我澄清一下.如果您将http://imgur.com/gallery/QvkaduU(HTML版本)粘贴到例如Facebook的状态更新字段中,它将找到主图像并从中制作缩略图,这正是我正在寻找的行为.问题是,这是怎么做到的?我是否必须编写自己的HTML解析器,或者有一种简单的方法来获取它?
解决方法
没有简单的方法可以获得任意URL的“好”缩略图.
Facebook这样做的算法相当复杂.页面开发人员可以通过向< head>添加各种元标记来提供提示,包括:
<Meta property="og:image" content="http://url_to_your_image_here" />
要么
<link rel="image_src" href="http://www.code-digital.co.uk/preview.jpg" />
…所以如果你想复制Facebook的算法,你需要获取页面源代码,解析它上面的任何“提示”(你最好检查我没有错过任何其他“提示”格式),如果页面不包含其中一个,则提出后备算法.
如果你喜欢Facebook的版本,我认为你应该能够通过他们的API为给定的URL请求Facebook的缩略图.
提供此类事情的其他服务包括:
> http://webthumb.bluga.net/home(不是免费的)
> http://immediatenet.com/thumbnail_api.html(免费,可能有限制性服务条款)
> https://www.google.com/search?q=get+thumbnail+for+url