使用XPath解析HTML获取网页内容

有的时候,我们开发的应用需要抓取网页的内容借为己用,如QQ网站的天气信息新闻等,和Google等搜索爬虫的机制不同之处在于抓取目标的页面对开发人员而言是已知的。我们有理由避免过多的使用正则表达式的繁冗分析过程,如果能够在获取目标网页的HTML之后通过DOM来解析HTML将是一件非常愉快的事情。这里会遇到两个问题,DOM操作只能在客户端通过JavascriptVBScript等脚本语言进行,加上HTML自身不是非强格式的,不能使用类似XSLXML解析的方式进行操作。不过既然写这篇Blog,就一定有了解决的办法J

非常感谢MicrosoftXML大师Chris Lovett为我们带来的SgmlReader这个开源的项目。我们知道,XMLHTML都是Sgml的子集。通过SgmlReader,能够将HTML转换生成格式规范的HTMLWell-Formed HTML,虽然没有这个称呼,但这里暂且这么说),从而可以使用XMLXPath语法读取网页的数据了。那么在.NET Framework下,我们遇到的问题变得如此轻松。

简单写了一个示例程序,用来抓取QQ网站的天气信息,通过更改城市名称和XPath获得网页内容。


代码:下载

PS
:除了SgmlReader之外,还有Simon Mourier.NET Html Agility Pack也具有类似的功能。

posted on   Microtoby  阅读(6456)  评论(14编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库

导航

< 2005年2月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 1 2 3 4 5
6 7 8 9 10 11 12
点击右上角即可分享
微信分享提示