之前我介绍过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安装包