2

私は .NET プログラマーです。Webスクレイピングプロジェクトに取り組む必要があります。HTMLAgilityPack と BeautifulSoup の違いについて知りたいです。

多くの人が、BeautifulSoup は HTMLAgilityPack よりもはるかに優れていると言っています。しかし、そのためには Python を学ぶ必要があります。

ですから、私の質問は、Python と BeautifulSoup を学ぶこと、または C# と HTMLAgilityPack を続けることは合理的ですか?

その他の提案は大歓迎です。

4

2 に答える 2

6

私が作成したライブラリであるCsQueryは、Html Agility Pack の比較的新しい代替手段です。次の利点があります。

  • CSS3 セレクターの完全なサポート。これは、ほとんどの人にとって既になじみがあり、xpath よりもはるかに簡単であり、クライアント用に既にコーディングしているのと同じ方法です。
  • 同じ理由で、jQuery API
  • HTML5 に完全に準拠したパーサーである、 validator.nu HTML パーサーを使用します。これは、Gecko ベースのブラウザー (Firefox) で使用されるコード ベースと同じです。つまり、一般的に悪い/無効なマークアップに対しても、Web ブラウザーとまったく同じ DOM を生成する必要があります。
  • 非常に大きなドキュメントでも、セレクターを非常に高速にするドキュメントにインデックスを付けます。HAP はセレクターごとに完全なドキュメント ツリーをトラバースする必要があるため、複雑なセレクターや大きなドキュメントの場合は非常に遅くなります。
  • 広範なユニット テスト カバレッジ - jQuery および Sizzle (jQuery CSS 選択エンジン) からのすべてのテストが C# に移植されました。

短所:

  • 現在のところ、.NET 4+ フル フレームワークのコンパイルのみが機能しますが、HAP にはほとんどの .NET 環境用のビルドがあります。

nuget: から取得できますInstall-Package CsQuery

于 2012-10-17T11:35:48.550 に答える
1

C# .NET の世界では、非常に柔軟な HTMLAgilityPack をお勧めします。整形式の XML であるかのように、整形式でない HTML を操作できるため、XPath を使用したり、ノードを反復したりできます。

BeautifulSoup は HTML スクレイピングに最適な方法ですが、開発者の観点からすると、まったく新しいテクノロジーを実践するのは簡単ではありません。したがって、.NET を使用している場合は、HTMLAgilityPack を強くお勧めします。

HTML Agility Pack、正規表現、および XDocument (LINQ -> XMLy のもの)の組み合わせで大きな成功を収めることができます。

非常に強力です - LINQ とラムダ (パート 3) - HTML Agility Packは、Vijay Santhanam によるブログ投稿で、私はそれに夢中になりました。

于 2012-10-17T05:03:10.240 に答える