最靠谱的方式是使用 htmlagilitypack 解析 html 获取 ,它自动处理编码、忽略大小写、跳过注释和无效嵌套;需调用 loadhtml() 或 load() 加载内容,用 selectsinglenode("//title") 获取节点,再取 innertext;注意空节点、动态渲染及编码不一致问题。

用 HtmlAgilityPack 解析 HTML 获取 <title></title> 最靠谱
直接读取网页源码再用正则提取 <title></title> 看似简单,但实际会掉进编码识别、标签嵌套、空格换行、大小写混用(比如 <title></title>)这些坑里。真正稳定的方式是用成熟的 HTML 解析器,HtmlAgilityPack 是 C# 生态里最常用也最轻量的选择。
安装 NuGet 包:Install-Package HtmlAgilityPack
关键点:它自动处理编码(如 UTF-8 / GB2312)、忽略大小写、跳过注释和无效嵌套,比手写字符串操作可靠得多。
- 必须先调用
doc.LoadHtml(htmlString)或doc.Load(url),不能直接对原始响应流调用SelectSingleNode - 如果网页用了
<meta charset="gb2312">浣











