.net 一个可以像操作XML一样操作HTML的文档的类库 HtmlAgilityPack

Posted aofengdaxia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net 一个可以像操作XML一样操作HTML的文档的类库 HtmlAgilityPack相关的知识,希望对你有一定的参考价值。

在写爬虫的时候,少不了处理html的。一般少不了通过正则表达式,或者SubString的方式把字符串截取。最近发现一个类:HtmlAgilityPack可以像操作XML一样的去操作HTML。

使用方式

使用Nuget直接安装下载。

代码实例

public void Example(string strHtml)

    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
    doc.LoadHtml(strHtml);
    //获得一个单独的div
    var singleNode = doc.DocumentNode.SelectSingleNode("//div[@class='mp-tickets']");
    //获得多个div的Node
    var multiNodes = singleNode..SelectNodes("div[@class='mp-tickettype']");

    foreach(var node in multiNodes)
    
    //可以执行其他的操作
    

注意事项

SelectSingleNode 和SelectNodes 统称为Select方法
Select方法的参数可以输入标签名或者标签名带class的如

SelectSingleNode("div");
SelectSingleNode("div[@class='className']");

如果标签以//开头

SelectSingleNode("//div[@class='className']");

则会进行模糊的检索,如果不带//只会匹配一级字标签的内容。在需要精确的搜索的时候,最好精确控制,否则会出错。
更多的操作方式,仍需摸索解锁

以上是关于.net 一个可以像操作XML一样操作HTML的文档的类库 HtmlAgilityPack的主要内容,如果未能解决你的问题,请参考以下文章

像 Uber 一样透明的操作栏和状态栏

ASP.NET / HTML - 使用光标时的文本区域光标位置

.net 标准是不是像 .net Core 一样跨平台? [复制]

Python操作xml

使用自定义的Dataloader做数据增强格式统一等操作/像使用pytorch一样进行训练。

像go 一样 打造.NET 单文件应用程序的编译器项目bflat 发布 7.0版本