我想在ASP.NET中使用C#提取网页的标题图像。我检查了窗口和文档对象,但它们没有诸如标题之类的属性。所以搜索方法来提取标题图像,就像在Chrome的页面标签中。
发布于 2012-08-24 22:50:31
using (WebClient client = new WebClient())
{
Byte[] favico = client.DownloadData("http://msite.com/favico.ico");
}那就是使用WebClient.DownloadData。如果你想存储它,你也可以使用WebClient.DownloadFile。
另一种防弹方法是下载索引页面,并使用超文本标记语言解析器查找指定图标所在位置的<link>标记(也可以应用于苹果触摸图标或其他方式)。
顺便说一句,我相信你要解析的标签是:
<!-- StackOverflow's implementation: -->
<link rel="shortcut icon" href="http://cdn.../favicon.ico">
<link rel="apple-touch-icon" href="http://cdn.../apple-touch-icon.png">
<!-- Google's implementation: -->
<meta content="/images/google_favicon_128.png" itemprop="image">
<!-- Facebook's implementation: -->
<link href="http://static.ak.fbcdn.net/.../q9U99v3_saj.ico" rel="shortcut icon">发布于 2012-08-24 22:51:04
在HTML规范中没有“标题图像”这样的东西。在某些浏览器中,您在选项卡或URL附近看到的图标是使用<link rel="icon"/>构造指定的:
<link type="image/x-icon" href="/images/favicon.ico" rel="icon" />IE可能会要求您使用稍微不同的语法:
<link type="image/x-icon" href="/images/favicon.ico" rel="shortcut" />解析页面-并检索href属性的值-这是图标的路径。
还要注意,IE版本8和更低版本完全忽略了这一行,而是在站点的根目录中查找文件favicon.ico。有关IE的详细信息,请参阅this somewhat old article。
https://stackoverflow.com/questions/12111605
复制相似问题