問題タブ [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.
javascript - PyV8でnodejsモジュールをロードするには?
PyV8でnodejsモジュールをロードするにはどうすればよいですか?
nodejsで実行した場合のjsdomの素晴らしさについてすべて読んだことがあります。Python アプリ内で v8 を実行し、Python が Web リソースを「取得」し、結果の html 文字列を v8 インスタンスに渡し、内部で jsdom をロードした場合、同じ dom-traversing の利点が得られますか?
(または、これは、まだ考えていない何らかの理由で無意味な構成ですか?)
node.js - jsdom がスクリプトを処理しないのはなぜですか?
このスクリプトでは、HTML ドキュメントの body の onLoad 属性で定義された関数が jsdom によって呼び出されません。なぜだめですか?
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サービスが欲しいだけです(または、画像などを無視できるようにすればさらに高速です)。
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を続行します
誰でもこの問題に関して私を助けることができますか?
node.js - nodejsを使ったWebスクレイピングでクラスセレクターを指定する方法
nodejsを使用してスクレイピングを実装しようとしています。特定の URL に要求を送信しています。応答を取得したら、応答を使用して、ページ内の各製品を配列に格納しています。各製品について、製品名、価格、割引などの製品の詳細を表示しようとしています。これは次のコードで実行しています。
正常に動作しています。クラス名が 'fashion-item' や 'fashion-item-first' のようなものである場合、これはすべて正常に機能します。しかし、クラス名に単語の間にスペースが含まれている場合、配列 ($products) に格納された製品を取得できません。つまり、$products の配列の長さはゼロです。私の質問は、クラス名がこの「ファッションアイテムファースト」の場合、同じことを行う方法です。私はとても試してみましたが、私にはわかりませんでした。私を助けてください。
javascript - jsdom.jqueryifyコールバックによってスローされたエラーをキャッチするにはどうすればよいですか?
node.jsで実行した場合のこのコードの出力は、最後の行(行番号9)で発生したエラーのスタックトレースです。7行目で発生するエラーは、ノードによって何らかの形で「吸収」されます。try / catchステートメントでラップしても、ノードのデフォルトのエラー処理コードから得られるほど詳細なスタックトレース出力を取得できないようです。
7行目のエラーをキャッチし、9行目からできるだけ詳細を取得するにはどうすればよいですか?
(注:これは、jQueryifyコールバック内からの呼び出しの結果として形成される「深く」ネストされたスタックで発生するエラーで発生する、はるかに複雑なスクリプトからの単純化された例であり、デバッグはエラーに関する詳細な統計を取得することができずに、今のところ絶対的な痛み)
jquery - JQuery を使用しているときに、href の結果を自動修飾する jsdom を停止するにはどうすればよいですか?
このスクリプトは、jsdom と jquery を使用して、タグの href 属性の値を取得します。何らかの理由で、スクリプトを実行しているパスに対して完全修飾されています。完全修飾されていない、href 値だけを取得するにはどうすればよいですか?
(コード スニペットもhttps://gist.github.com/2355968にあります)
javascript - Node.js jsdom エラー
私はjsdomを機能させようとしています:)
コードは次のとおりです。
そして、ここにエラーがあります:
ページがフェッチされているかどうか、およびjquery libが解析されているかどうかを確認しました-それらは解析されています。
jsdom.js の実装を見ることができます。
.createWindow() が成功していないようです...
Cloud9で実行しています。
どんな助けでも大歓迎です。
javascript - jsdom が Web ページ内のスクリプトを処理しない
私はnodejsが初めてです。内部にスクリプト コードが含まれている可能性のある Web ページを解析するために jsdom を使用したいと考えています。しかし、関数または変数が定義されていないというエラーが表示されました。誰でもこれについていくつかの指示を与えることができます.
私のコード
そしてhtmlページはこちら
以下のエラーメッセージが表示されました
ロード関数が定義されていないと報告していますが、実際には Web ページで宣言されています。
誰でもいくつかの提案をすることができますか、単に jsdom がページに埋め込まれたスクリプトを処理できないと教えてください。