如何在使用WebBrowser控件时获取网站图标?

Phi*_*ace 4 .net c# favicon webbrowser-control winforms

我的应用程序中嵌入了Windows窗体WebBrowser控件.有没有办法使用WebBrowser或HtmlDocument API获取网页图标?即使从本地文件系统获取它也足够了.将图标作为单独的操作下载将是最后的手段......

谢谢.

Dio*_*mes 9

只需使用GET或类似的东西下载/favicon.ico文件(就像您对任何其他文件一样).
您还可以解析页面以查找可能也是png 的favicon .默认情况下,它是一个ICO文件.

favicon文件的位置通常位于页面<link rel="shortcut icon" href="/favicon.ico" /><head>节点中.

此外,某些浏览器默认尝试下载/favicon.ico(即网站根文件夹中的favicon.ico文件)而不检查该元素的页面.

其他想法将使用谷歌的S2:

http://www.google.com/s2/favicons?domain=youtube.com (尝试一下)
这将为您提供youtube的ICO图标的16x16 PNG图像.

http://www.google.com/s2/favicons?domain=stackoverflow.com (试试看)
这将以相同的格式为您提供stackoverflow图标.

它可能看起来很棒但不要忘记,这个Google服务没有得到官方支持,他们可能随时将其删除.