1. ホーム
  2. ハイパーリンク

[解決済み】Node.jsでのHTMLパーサー【終了しました

2022-04-21 18:33:02

質問

Rubyの ノコギリ をnodejs上で使用することはできますか? つまり、ユーザーフレンドリーなHTMLパーサーです。

Node.jsのモジュールページでいくつかのパーサーを見たことがありますが、私はきれいで新鮮なものを見つけることができません。

解決方法は?

を構築したい場合 DOM を使用することができます。 jsdom .

また チェリオ を持っています。 jQuery のインターフェイスを持ち、古いバージョンの jsdom よりもずっと高速です(最近では性能は同等ですが)。

をご覧になってみてください。 htmlparser2 これはストリーミングパーサーで、ベンチマークによると、他のものよりも高速で、デフォルトではDOMがないようです。DOM を作成するハンドラもバンドルされているので、DOM を作成することもできます。これはcheerioが使っているパーサーです。

パース5 も良いソリューションのように見えます。かなりアクティブで (この更新の時点で最後のコミットから 11 日)、WHATWG に準拠しており、次のように使用されています。 jsdom , アンギュラー そして ポリマー .

また、HTMLをパースする場合は ウェブスクレイピング を使用することができます。 YQL 1 . があります。 ノードモジュール を使用します。YQLが最適な解決策になると思います。 静的 自分のコードや処理能力ではなく、サービスに依存しているからです。ただし、ウェブサイトのrobot.txtでページが許可されていない場合は、YQLは動作しないので注意してください。

もし、スクレイピングしようとしているウェブサイトが ダイナミック であれば ヘッドレスブラウザ のように ファントムジム . また、次のようなものもあります。 キャスパー phantomjsを検討しているのであれば。また、ノードからcasperjsを制御するには、次のようにします。 スプーキーJS .

phantomjsの他に、以下のようなものがあります。 zombiejs . nodejsに埋め込むことができないphantomjsとは異なり、zombiejsは単なるnodeモジュールです。

そこには nettuts+ toturial 後者の解決策については


1 2014年8月以降、YQLの要件であるYUIライブラリは積極的なメンテナンスが行われなくなりました。 ソース