nodejsにRubyのnokogiriのようなものがありますか? 私は使いやすいHTMLパーサーを意味します。Node.jsのHTMLパーサー
私はNode.jsモジュールのページでいくつかのパーサを見たことがありますが、私はきれいで新鮮なものを見つけることができません。
nodejsにRubyのnokogiriのようなものがありますか? 私は使いやすいHTMLパーサーを意味します。Node.jsのHTMLパーサー
私はNode.jsモジュールのページでいくつかのパーサを見たことがありますが、私はきれいで新鮮なものを見つけることができません。
cheerioもありますが、これはjQueryインターフェイスを持ち、最近のjsdomのバージョンよりもはるかに高速ですが、最近はパフォーマンスが似ています。
ストリーミングパーサーであるhtmlparser2を参照してください。ベンチマークによれば、他のものより速く、デフォルトではDOMがないようです。また、DOMを生成するハンドラとバンドルされているため、DOMを生成することもできます。これはcheerioによって使用されるパーサーです。
parse5も良い解決策のようです。 WHATWGに準拠しており、jsdom、Angular、およびPolymerで使用されています(このアップデートの最終コミット以降11日間)。
web scrapingのHTMLを解析する場合は、YQLを使用できます。それにはnode moduleがあります。 YQL私はあなたのHTMLがstaticウェブサイトからのものであれば、自分のコードや処理能力ではなく、サービスに頼っているので、最高の解決策になると思います。ウェブサイトのrobot.txtによってページが許可されていないとうまくいかないことに注意してください.YQLはそれに対応していません。
掻き取ろうとしているウェブサイトがdynamicの場合はphantomjsのようにheadless browserを使用してください。あなたがファントムを考えているなら、casperjsも見てください。そして、あなたはSpookyJSとノードからcasperjsを制御することができます。
ファントムズの隣には、zombiejsがあります。 nodejsに埋め込まれないphantomjsとは異なり、zombiejsは単なるノードモジュールです。
後者のソリューションにはnettuts+ toturialがあります。
非常に完全な答えです。良くやった。 –
DomHandlerモジュール(htmlparser2にバンドルされています)を使用してhtmlparser2からDOMを取得できます。それらは、DOMを作成するオーバーヘッドなしに、他の種類のHTML処理を可能にする目的で分離されています。 – esp
@ espありがとう、私はそれが非標準のDOMだと思う前に、私はそれに応じてセクションを変更しました。 –
お試しhttps://github.com/tmpvar/jsdom - あなたはいくつかのHTMLを与え、あなたにDOMを与えます。
また、X線を見てみることができます:あなたは「やさしい」でhttps://github.com/lapwinglabs/x-ray
何を意味するのですか? NokogiriのXPathやCSSセレクタサポートのように、ノードを選択して作業するのに便利ですか?無効な「タグスープ」HTMLを解析することができますか? – Phrogz
jQueryに慣れている場合は、[この回答](http://stackoverflow.com/a/31361044/778272)を検討してください。 –
なぜあなたはいつも話題になったり、受け入れられないようなことを何かを評価しますか?これは正当な質問をした本当の人です。あなたは先に進み、それを閉じなければなりませんでした。それはあなたに何か重要なものか何かを感じさせますか? –