5

HtmlAgilityPack を使用して多数の Web サイトをスクレイピングしています。問題は、ほとんどの場所に TextNodes を挿入することを主張しているように見えることです。これらの場所は、空であるか、大量の \n、空白、および \r を含むだけです。

firebug には表示されませんが、HtmlAgilityPack には表示されるため、 childnodes を数えているときに問題が発生する傾向があります。

HtmlAgilityPack にそれをやめる、または少なくともこれらのテキストノードをクリアするように指示する方法はありますか? (しかし、USEFULのものを保持したい)。ここでは、コメント タグとスクリプト タグについても同じことが言えます。

4

4 に答える 4

0

不要なノードを除外するために何らかの LINQ を使用するノードで、「子」コレクション (または同様のもの) で動作する拡張メソッドを作成します。次に、ツリーをトラバースするときは、次のようにします。

myNode.Children.FilterNodes().ForEach(x => {});
于 2012-07-05T09:12:04.427 に答える
0

2 つのノード間に「空白がない」ことと「ある程度の空白がある」ことには違いがあります。したがって、すべて空白のテキストノードは依然として必要であり、重要です。

「実際のスクレイピング」を開始する前に、html を前処理して不要なノードをすべて削除できませんでしたか?

「削除方法」については、この回答も参照してください。

于 2012-07-05T08:55:40.650 に答える