私はAngleSharpを使用してサイトのコンテンツを解析しています。匿名ブロックに問題があります。AngleSharpの無名ブロックからテキストを解析するには?
サンプルコードを参照してください:だから
var parser = new HtmlParser();
var document = parser.Parse(@"<body>
<div class='product'>
<a href='#'><img src='img1.jpg' alt=''></a>
Hello, world
<div class='comments-likes'>1</div>
</div>
<div class='product'>
<a href='#'><img src='img2.jpg' alt=''></a>
Yet another helloworld
<div class='comments-likes'>25</div>
</div>
<body>");
var products = document.QuerySelectorAll("div.product");
foreach (var product in products)
{
var productTitle = product.Text();
productTitle.Dump();
}
を、productTitleはdiv.comments-同類からの数字が含まれている、出力は次のようになります。
こんにちは、世界1
さらに別のHelloWorld 25
私はのようなものを試しましたリンク要素の次の兄弟はdiv.comments-likesであり、無名ブロックではありません。それは示しています
だから、無名ブロックはスキップされます。 :(
私は私の例のために、すべての防止のブロックを削除して見つけた最適な回避策:
product.QuerySelector(".comments-likes").Remove();
var productTitle = product.Text().Trim();
は無名ブロックからテキストを解析するためのより良い方法です
ありがとうございます! –