以前、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 インストール パッケージがないことです