【问题标题】:Can't get favicon from instagram无法从 instagram 获取 favicon
【发布时间】:2014-09-19 08:53:15
【问题描述】:

我需要检索 instagram 的网站图标。现在我的程序可以解析 html 代码并检索图标的相应 url:http://d36xtkk24g8jdx.cloudfront.net/bluebar/d1f7ba7/images/ico/apple-touch-icon-precomposed.png。 但是我无法从我的程序中读取这个图标,因为当我的程序尝试下载它时,instagram 在该文件的开头、中间和结尾放置了一些额外的字节:

var wc = new WebClient();
var iconBytes = wc.DownloadData(@"http://d36xtkk24g8jdx.cloudfront.net/bluebar/d1f7ba7/images/ico/apple-touch-icon-precomposed.png");
var converter = new ImageConverter();
var image = (Image)converter.ConvertFrom(iconBytes); // Crash here 'parameter is invalid'

我尝试直接从网络浏览器保存 png 文件。然后我分析了它的内容,得出的结论是WebClient返回的字节数组几乎是相同的,但它包含了开头的15个额外字节,最后包含了8个额外的字节和数组中间的5个额外字节。根据对 png 格式的了解,我可以轻松地从头到尾清理这个“盐”,但我不知道如何从数组中间删除垃圾。

您能帮我弄清楚如何下载和处理 instagram favicon 吗?

【问题讨论】:

  • 使用webbrowser控件,你能在加载的Document的Images集合中找到它吗,那里干净吗?
  • 有两件事需要调查:WebClient 可能会暴露一些底层的 HTTP 内容(如分块)。查看这些额外的字节并搜索它们的含义。第二条线索:可能服务器根据用户代理发送不同的内容。配置您的 WebClient 使其看起来像您的浏览器。

标签: c# html image favicon


【解决方案1】:

此 Google 服务将返回图片:

http://www.google.com/s2/favicons?domain=www.instagram.com 

例子

http://www.google.com/s2/favicons?domain= *Domain*

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 2016-02-02
    • 1970-01-01
    相关资源
    最近更新 更多