大量のHTMLページを(サーバー側で)解析する必要があります。
私たちは皆、正規表現がここに行く方法ではないことに同意します。
。
Node.jsにはその機能が組み込まれていますか?
サーバー側でHTMLを解析するこの問題に対するより良いアプローチはありますか?
npm モジュール jsdom および htmlparser を使用して、Node.JSでDOMを作成および解析できます。
その他のオプションは次のとおりです。
これらすべてのオプションの中で、標準のW3C DOMアクセサーメソッドを使用し、クライアントとサーバーの両方でコードを再利用できるため、Node.jsオプションを使用することを好みます。 BeautifulSoupのメソッドがW3C domにもっと似ていて、XSLTを作成するためにHTMLをXHTMLに変換するのは単なるサディスティックだと思います。
Cheerio を使用します。 jsdomほど厳密ではなく、スクレイピング用に最適化されています。ボーナスとして、すでに知っているjQueryセレクターを使用します。
❤おなじみの構文:CheerioはコアjQueryのサブセットを実装します。 Cheerioは、jQueryライブラリーからすべてのDOMの不整合とブラウザーの問題を取り除き、本当に豪華なAPIを明らかにします。
ϟ超高速:Cheerioは非常にシンプルで一貫性のあるDOMモデルで動作します。その結果、解析、操作、およびレンダリングは非常に効率的です。予備的なエンドツーエンドのベンチマークは、cheerioがJSDOMよりも約8倍高速であることを示唆しています。
flexible非常に柔軟:Cheerioは@ FB55の寛容なhtmlparserをラップします。 Cheerioは、ほぼすべてのHTMLまたはXMLドキュメントを解析できます。
htmlparser2を使用します。その方法はより高速で簡単です。この使用例を参照してください。
https://www.npmjs.org/package/htmlparser2#usage
そして、ここでのライブデモ:
Htmlparser2 FB55が良い選択肢のようです。
jsdomは、実際の画面スクレイピングを行うには厳密すぎますが、beautifulsoupは悪いマークアップを止めません。
node-soupselect はpythonのbeautifulsoupをnodejsに移植したもので、美しく機能します