2

Asp.net を使用して Web クローラーを作成しました。よく効きます。問題は、そこからコンテンツを抽出したいときです。一部のコンテンツは HTML タグ間で折り返されます。そこからコンテンツを抽出するソリューションがいくつかありますが、どれが優れているかわかりません。パフォーマンスが高く、実装が簡単でなければなりません。

  1. 多くのパターンで正規表現を使用してコンテンツを抽出します。

  2. Linq to XML を使用してコンテンツを抽出します。

  3. XPath を使用してコンテンツを抽出します。

誰かがより良い解決策を選択するのを手伝ってください。XPath を使用すると思いますが、パフォーマンスが RegEx や Linq2XML よりも優れているかどうかはわかりません。

アイデアをありがとう。

4

4 に答える 4

4

あなたの解決策はどれも特に良いものではありません。

  1. HTML は正規言語ではないため、正規表現には適していません。HTML を正規表現で解析するための標準的な応答も参照してください。
  2. HTML は必ずしも有効な XML ではありません

代わりに、 Html Agility Packなどの HTML 解析ライブラリを使用する必要があります。

于 2013-05-02T14:10:06.467 に答える
3

他の人がすでに示唆しているように、適切な HTML パーサーを使用してください。ほとんどの場合、HTML は XML として扱えるほど適切に記述されていません。さらに悪いことに、HTML5 は完全に解析不可能な構文を要求します。たとえば、HTML5 では、属性を囲む引用符を省略できます。

HTML Agility Pack に加えて、Majestic-12 の HTML パーサー ( Majestic-12 : Projects : C# HTML parser (.NET) )を参照してください。

于 2013-05-02T14:14:02.830 に答える
3

ない。HTML Agility Packなどの適切な HTML パーサーを使用する

于 2013-05-02T14:09:45.970 に答える