下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C#使用AngleSharp库解析html文档AngleSharp:/AngleSharp/AngleSharp
AngleSharp是一个.NET库,使您能够解析基于尖括号的超文本,例如HTML,SVG和MathML,该库还支持未经验证的XML,AngleSharp的一个重要方面是CSS也可以解析。
AngleSharp与类似的库(例如HtmlAgilityPack)相比的优势在于:
公开的DOM使用的是W3C官方指定的API,即,甚至在AngleSharp中也可以使用querySelectorAll之类的东西。解析器还使用HTML5.1规范,该规范定义了错误处理和元素校正。
AngleSharp库专注于标准合规性,交互性和可扩展性。因此,它为使用C#的Web开发人员提供了从在任何现代浏览器中使用DOM所获得的所有可能性。
官方实例:/AngleSharp/AngleSharp.Samples
这个简单的示例将使用Wikipedia的网站进行数据检索。
varconfig=Configuration.Default.WithDefaultLoader();
varaddress="/wiki/List_of_The_Big_Bang_Theory_episodes";
varcontext=BrowsingContext.New(config);
vardocument=awaitcontext.OpenAsync(address);
varcellSelector="tr.veventtd:nth-child(3)";
varcells=document.QuerySelectorAll(cellSelector);
vartitles=cells.Select(m=m.TextContent);
二、使用AngleSharp生成自动缩进格式化的html方法
1、操作DOM示例
//创建一个(可重用)解析器前端
varparser=newHtmlParser();
//htmlDOM节点
varsource="
h1Someexamplesource/h1
pThisisaparagraphelement/p
//解析源文件
vardocument=parser.Parse(source);
//创建P标签
varp=document.CreateElement("p");
p.TextContent="Thisisanotherparagraph.";
//添加到DOM
document.Body.AppendChild(p);
//返回完整html
varhtml=document.DocumentElement.OuterHtml;
ViewData["html"]=html;
效果展示
2、更改标签属性
给标签添加自定义属性
varparser=newHtmlParser();
//为以下源代码生成HTMLDOM
vardocument=parser.Parse("
liFirstelement/li
liSecondelement/li
lithird/li
liLast/li
/ul
//获取所有li元素并将test属性设置为值测试
varelements=document.QuerySelectorAll("li").Attr("test","test");
//元素仍然包含所有li元素
ViewData["html"]=document.DocumentElement.OuterHtml;
效果展示
3、使用AngleSharp生成html代码自动缩进格式化
varparser=newHtmlParser();
vardocument=parser.ParseDocument(text);
using(varwriter=newStringWriter())
document.ToHtml(writer,newPrettyMarkupFormatter
Indentation="\t",
NewLine="\n"
varindentedText=writer.ToString();
}
4、使用AngleSharp下载获取html代码
varrequester=newDefaultHttpRequester("Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/69.0.3497.100Safari/537.36");
requester.Headers.Add("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
requester.Headers.Add("Referer","");
requester.Headers.Add("Accept-Language","zh-Hans-CN,zh-Hans;q=0.8,en-US;q=0.5,en;q=0.3");
varcontext=BrowsingContext.New(Configuration.Default.WithLocaleBasedEncoding().WithDefaultLoader().WithDefaultCookies().With(requester));
//根据虚拟请求/响应模式创建文档
vardocument=context.OpenAsync(url).Result;
using(varwriter=newStringWriter())
document.ToHtml(writer,newPrettyMarkupFormatter
Indentation="\t",
NewLine="\n"
varindentedText=writer.ToString();
}
5、爬取豆瓣美女图片
新建一个Belle类用于保存获取的图片信息
///
///解析html
publicclassBelle
///
///标题
///
publicstringTitle{get;set;}
///
///图片地址
///
publicstringImageUrl{get;set;}
}
获取html并解析
//设置配置以支持文档加载
varconfig=Configuration.Default.WithDefaultLoader();
//豆瓣地址
varaddress="/dbgroup/show.htmcid=4";
//请求豆辨网
vardocument=BrowsingContext.New(config).OpenAsync(address);
//根据class获取html元素
varcells=document.Result.QuerySelectorAll(".panel-bodyli");
//Weareonlyinterestedinthetext-selectitwithLINQ
Listlist=newList();
foreach(varitemincells)
varbelle=newBelle
Title=item.QuerySelector("img").GetAttribute(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 事业单位法律岗面试易错题题库试卷及参考答案2026
- 事业单位法律岗面试高频考题题库试卷及参考答案
- 2027年备考会计基础 【零基础学员必练】全真模拟考试试题卷含答案
- 2027年备考会计基础 【零基础学员必练】通关提分题库及完整答案
- 2026年湖南生物机电职业技术学院高职单招笔试职业适应性测验历年参考题库含答案解析
- 2026年湖南外贸职业学院高职单招笔试语文历年参考题库含答案解析
- 2026年渤海理工职业学院高职单招笔试英语历年参考题库含答案解析
- 2026年海南外国语职业学院高职单招笔试综合素质历年参考题库含答案解析
- 2026年河北劳动关系职业学院高职单招笔试职业技能测验历年参考题库含答案解析
- 2026年江西财经职业学院高职单招笔试数学历年参考题库含答案解析
- 中医红外热像采集与分析技术规范
- 定语从句专项训练50题可打印
- 重复经颅磁刺激治疗与护理
- 四川省甘孜州泸定县冷碛镇冷碛小学-主题班会-好好说话,与爱同行【课件】
- 火灾与爆炸的预防措施
- 电力工程竣工验收报告及流程
- CFSLM治疗先天性重度上睑下垂的临床体会
- 2025年中国联通校园招聘笔试参考题库含答案解析
- 经导管主动脉瓣置换术围手术期共病诊治中国专家共识
- 钢结构监理实施细则
- 高填深挖路基监控量测施工方案 - 副本
评论
0/150
提交评论