之前我介绍过HtmlAgilityPack的CSS选择器扩展——ScrapySharp,它可以非常方便的实现通过CSS选择器表达式来查询HtmlNode。今天在使用的过程中,发现它不支持nth-child语法,导致在许多查询的地方不大方便。
在网上搜了一下,找到了另一个支持得更全面的HtmlAgilityPack的CSS选择器扩展FizzlerEx。它的使用方法也非常相似。
using HtmlAgilityPack; using Fizzler.Systems.HtmlAgilityPack; var web = new HtmlWeb(); var document = web.Load("http://example.com/page.html") var page = document.DocumentNode; foreach(var item in page.QuerySelectorAll("div.item")) { var title = item.QuerySelector("h3:not(.share)").InnerText; var date = DateTime.Parse(item.QuerySelector("span:eq(2)").InnerText); var description = item.QuerySelector("span:has(b)").InnerHtml; }
它还自带了一个查看的GUI工具,用起来还蛮方便的。就是稍微不便的是没有NuGet安装包