Html Agility Pack – XPath 基本语法

最新想写个抓图片的小软件玩玩,需要分析 Html 结构,开始时自己写正则抓,后来发现要处理的 Html 实在太不标准,于是找来找去,找到了 Html Agility Pack 这个开源的 .Net 项目,初略尝试,印象很不错。

Html Agility Pack 会将 Html 文件解析为一个 Xml 文档,所以支持 XPath 路径查询,并且还支持规范化文档,不管你的 Html 有多乱,它都能将其规范化,容错性很好。

但是文档真是难找,大概是语言不熟加上没找到地方,好在语法也不太难,言归正传,看看例子吧。

//div[@]/a/img/@src

看上面的例子,可以初步解析得出这是一个查找 id=’toolbar’ 的 div 元素内的 a 元素内的 img 元素,并且拥有 src 属性,那么就可以得出以下关键符号:

// 作为开头使用

/ 分隔符

@ 属性标志

[] 属性选择器

根据上面的结论写一些例子:

找所有拥有 href 属性的元素

//@href

找所有拥有 src 属性的图片元素

//img/@src