You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.NET Core C#控制台程序中使用HtmlAgilityPack获取网页CSS文件链接

获取特定标签的CSS链接解决方案

嘿,这事儿不难改!你现在的代码是在抓取<a>标签的href,只要调整XPath表达式,就能精准定位到你要的<link rel="stylesheet">标签啦。

方法一:获取所有样式表链接

如果你想拿到页面上所有的CSS样式表链接,可以把你的代码改成这样:

var web = new HtmlWeb();
var doc = web.Load(url);
// 用XPath定位所有rel属性为stylesheet的link标签
var styleLinkNodes = doc.DocumentNode.SelectNodes("//link[@rel='stylesheet']");
// 提取href属性,同时做空值处理避免报错
var cssHrefs = styleLinkNodes?.Select(node => node.Attributes["href"]?.Value)
                                .Where(href => !string.IsNullOrEmpty(href))
                                .ToList() ?? new List<string>();

这段代码做了这些事:

  • 用//link[@rel='stylesheet']作为XPath,精准筛选出所有样式表的link标签
  • 用?.操作符防止styleLinkNodes为null时出现空引用异常
  • 通过Where过滤掉空的href值,最后如果没有找到任何节点,返回一个空列表

方法二:精准获取目标CSS文件

如果你只需要那个包含user-style.css的特定链接,可以用更精确的XPath直接定位:

var web = new HtmlWeb();
var doc = web.Load(url);
// 匹配rel=stylesheet且href包含user-style.css的link标签
var targetCssNode = doc.DocumentNode.SelectSingleNode("//link[@rel='stylesheet' and contains(@href, 'user-style.css')]");

if (targetCssNode != null)
{
    string targetCssHref = targetCssNode.Attributes["href"].Value;
    // 这里就可以处理拿到的目标CSS链接啦
    Console.WriteLine(targetCssHref);
}

这个XPath里的contains(@href, 'user-style.css')能帮你直接锁定包含指定文件名的样式表,不用再从列表里筛选,效率更高。

内容的提问来源于stack exchange,提问作者Xodya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 22:47:31