問題タブ [jsdom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1098 参照

javascript - PyV8でnodejsモジュールをロードするには?

PyV8でnodejsモジュールをロードするにはどうすればよいですか?

nodejsで実行した場合のjsdomの素晴らしさについてすべて読んだことがあります。Python アプリ内で v8 を実行し、Python が Web リソースを「取得」し、結果の html 文字列を v8 インスタンスに渡し、内部で jsdom をロードした場合、同じ dom-traversing の利点が得られますか?

(または、これは、まだ考えていない何らかの理由で無意味な構成ですか?)

0 投票する
1 に答える
414 参照

node.js - jsdom がスクリプトを処理しないのはなぜですか?

このスクリプトでは、HTML ドキュメントの body の onLoad 属性で定義された関数が jsdom によって呼び出されません。なぜだめですか?

0 投票する
6 に答える
23755 参照

node.js - PhantomJS インスタンスの「プール」を管理する方法

私は、1 つの引数 (URL) を取り、その URL から解決された DOM を表す html を返す、内部で使用するための Web サービスを計画しています。解決済みとは、Web サービスが最初にその URL でページを取得し、PhantomJS を使用してページを「レンダリング」し、すべての DHTML、AJAX 呼び出しなどが実行された後に結果のソースを返すことを意味します。ただし、リクエストごとにファントムを起動する (私は現在行っています) のは遅すぎますWeb サービスへの最新の呼び出しを提供するために常に利用できる PhantomJS インスタンスのプールが必要です。

以前にこの種の作業が行われたことはありますか? プール マネージャー/http プロキシ サーバーを自分でゼロから作成するよりも、この Web サービスを他のユーザーの作業に基づいて作成したいと考えています。

詳細なコンテキスト: これまでに見た 2 つの同様のプロジェクトと、それぞれを回避した理由を以下にリストしました。代わりに、PhantomJS インスタンスのプールを管理することについてこの質問が発生しました。

jsdom - 私が見たところ、ページ上でスクリプトを実行するための優れた機能を備えていますが、ブラウザの動作を複製しようとはしていないため、汎用の「DOM リゾルバー」として使用すると、.あらゆる種類のエッジ ケース、イベント呼び出しなどを処理するための多くの余分なコーディング。最初に見た例は、ノードを使用してセットアップしたテスト アプリの body タグの onload() 関数を手動で呼び出さなければならないことでした。深いうさぎの穴の始まりのように思えました。

Selenium - 非常に多くの可動部分があるため、長期間存続するブラウザー インスタンスを管理するためのプールのセットアップは、PhantomJS を使用するよりも複雑になります。マクロの記録/スクリプトの利点は必要ありません。Webページを取得してDOMを解決するのと同じくらいパフォーマンスの高いWebサービスが欲しいだけです(または、画像などを無視できるようにすればさらに高速です)。

0 投票する
7 に答える
14415 参照

node.js - npmはWindowsでjsdomエラーをインストールしますか?

Windows PCにnodejsをインストールしました。そして、それはうまく機能していました。しかし、「npm install jsdom」を使用して jsdom をインストールしようとすると、このエラーが表示されました。

node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" 再構築情報 OK で終わる場合は機能しました
エラー!
エラー: Object.oncomplete (C:\Program Files) の failNoPython (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:78:14) にPython がインストールされていないようです\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:66:11) エラー! 正常ではない
npm WARN オプションの依存関係が失敗しました
。contextify@0.1.2 jsdom@0.2.13 ./node_modules/jsdom
+-- cssom@0.2.3 +-- htmlparser@1.7.5を続行します

誰でもこの問題に関して私を助けることができますか?

0 投票する
2 に答える
1329 参照

node.js - nodejsを使ったWebスクレイピングでクラスセレクターを指定する方法

nodejsを使用してスクレイピングを実装しようとしています。特定の URL に要求を送信しています。応答を取得したら、応答を使用して、ページ内の各製品を配列に格納しています。各製品について、製品名、価格、割引などの製品の詳細を表示しようとしています。これは次のコードで実行しています。

正常に動作しています。クラス名が 'fashion-item' や 'fashion-item-first' のようなものである場合、これはすべて正常に機能します。しかし、クラス名に単語の間にスペースが含まれている場合、配列 ($products) に格納された製品を取得できません。つまり、$products の配列の長さはゼロです。私の質問は、クラス名がこの「ファッションアイテムファースト」の場合、同じことを行う方法です。私はとても試してみましたが、私にはわかりませんでした。私を助けてください。

0 投票する
1 に答える
956 参照

javascript - jsdom.jqueryifyコールバックによってスローされたエラーをキャッチするにはどうすればよいですか?

node.jsで実行した場合のこのコードの出力は、最後の行(行番号9)で発生したエラーのスタックトレースです。7行目で発生するエラーは、ノードによって何らかの形で「吸収」されます。try / catchステートメントでラップしても、ノードのデフォルトのエラー処理コードから得られるほど詳細なスタックトレース出力を取得できないようです。

7行目のエラーをキャッチし、9行目からできるだけ詳細を取得するにはどうすればよいですか?

(注:これは、jQueryifyコールバック内からの呼び出しの結果として形成される「深く」ネストされたスタックで発生するエラーで発生する、はるかに複雑なスクリプトからの単純化された例であり、デバッグはエラーに関する詳細な統計を取得することができずに、今のところ絶対的な痛み)

0 投票する
1 に答える
733 参照

node.js - jsdomハッシュ変更イベント

jsdomドキュメントの場合:

ハッシュの変更:

'hashchange'でイベントをトリガーしませんwindow

誰かがこれの回避策を知っていますか?

ありがとうございました

0 投票する
1 に答える
175 参照

jquery - JQuery を使用しているときに、href の結果を自動修飾する jsdom を停止するにはどうすればよいですか?

このスクリプトは、jsdom と jquery を使用して、タグの href 属性の値を取得します。何らかの理由で、スクリプトを実行しているパスに対して完全修飾されています。完全修飾されていない、href 値だけを取得するにはどうすればよいですか?

(コード スニペットもhttps://gist.github.com/2355968にあります)

0 投票する
3 に答える
8130 参照

javascript - Node.js jsdom エラー

私はjsdomを機能させようとしています:)

コードは次のとおりです。

そして、ここにエラーがあります:

ページがフェッチされているかどうか、およびjquery libが解析されているかどうかを確認しました-それらは解析されています。

jsdom.js の実装を見ることができます。

.createWindow() が成功していないようです...

Cloud9で実行しています。

どんな助けでも大歓迎です。

0 投票する
2 に答える
5773 参照

javascript - jsdom が Web ページ内のスクリプトを処理しない

私はnodejsが初めてです。内部にスクリプト コードが含まれている可能性のある Web ページを解析するために jsdom を使用したいと考えています。しかし、関数または変数が定義されていないというエラーが表示されました。誰でもこれについていくつかの指示を与えることができます.

私のコード

そしてhtmlページはこちら

以下のエラーメッセージが表示されました

ロード関数が定義されていないと報告していますが、実際には Web ページで宣言されています。

誰でもいくつかの提案をすることができますか、単に jsdom がページに埋め込まれたスクリプトを処理できないと教えてください。