問題タブ [nightmare]

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 に答える
3065 参照

javascript - Nightmare / Electron による動的ページング (ページスクレイプ)

Nightmare / Electron で動的ページング Web サイトをスクレイピングしようとしています。doを実行する方法がわかりません...悪夢のような関数を使用するか、ロジックで評価呼び出しを連鎖させる方法が必要です。

これは、単にフレーズを Google で検索し、ページ 1 から結果の hrefs を返す簡単なコード例です。このコードを結果の各ページに続けてほしいと思います。

0 投票する
4 に答える
8083 参照

javascript - Nightmare.js が Ubuntu Linux クラウド サーバーで期待どおりに動作しない

[DigitalOcean 経由] Ubuntu Linux 14.04 サーバーで nightmare.js を動作させることができないようです。

PhantomJS (1.9.8) と Node (4.2.4) をインストールしましたが、私が知る限り、うまく機能しています。

たとえば、これを実行すると:

これを含むloadspeed.jsで:

次の出力が得られます。

ただし、単純な悪夢を実行しようとすると:

これを含む hello_nightmare.js で:

出力がまったく得られません。コマンドラインで「Enter」を押したような気がします。

また、悪夢の github サイトで例を試しました。

これを含む hello_nightmare_main.js で:

そして、それはまだ機能しません。

どうすればこの悪夢を解決できますか?

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

javascript - 引数をジェネレーターに渡す、vo

悪夢の js を使用してページ全体をスクレイピングし、結果を呼び出し元の関数に返そうとしています。そのために、悪夢の例を拡張して、ジェネレーター関数に引数を渡します。理由がわかりませんが、run() 関数が呼び出されることはありません。

ご協力いただきありがとうございます。

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

javascript - VO、ジェネレーター、プロミス、および戻りオブジェクトの相互作用。

悪夢とvoがどのように相互作用するかを理解しようとしています. 悪夢のページの (ほぼ) 元の例を以下に示します。

誰かが起こることの順序を見つける方法のヒントを教えてください。

  • コードが機能するためにジェネレーター関数が yield ステートメントと return ステートメントを必要とする理由
  • シーケンスを合理的に機能させるために、どのように利回りが vo / nightmare によって自動的にトリガーされるか。背景は、いつどこにyieldを配置するかを知りたいのですが、ここのyieldステートメントは、実際に待機をトリガーする以外に何もしていないようです。私の現在の知識では、例をコピーして、「.goto()」と「.end()」を呼び出すときに「待機」することができます。

残念ながら、ナイトメアのドキュメントには、その設計がどのように機能するか (promise およびジェネレーターとの相互作用) は記載されていません。

run() promise を手動で解決し、ジェネレーター関数を意図したとおりに動作させるために必要なすべての .next() をトリガーする方法の例を誰かが思いつくことができれば、これはすでに大きな助けになります。

ありがとう !

0 投票する
0 に答える
549 参照

node.js - NightmareJS でログインした後にポップアップ ウィンドウのスクリーンショットを取得するにはどうすればよいですか

Nightmare.js を使用して、2 つの異なるページの 2 つのスクリーンショットを取得しようとしています。最初のページでログインする必要があります。その後、ページはユーザーに関する情報を含むポップアップを起動します。

問題は、ログインが成功したにもかかわらず、2 番目のスクリーンショットを取得できないことです。

これが私のコードです:

NodeJS で実行する必要があります。

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

node.js - nightmare.js のタイプでキーダウン、キープレスを送信する

nightmare.js の Type メソッドは、テキストを入力コントロールの value プロパティに割り当てます。この実装の keydown により、スクレイピングしようとしているページで keypress イベントがトリガーされません。「タイプ」の後にキーダウンイベントを送信する方法はありますか?

編集 1-

jQueryを使用してイベントを送信する例を次に示しますが、これも機能しません-

編集 2-

キーに相当する Unicode を type メソッドのパラメーターとして使用すると、何らかの方法で添付イベントが呼び出されます。このハックがどのように機能するかは正確にはわかりませんが、機能します!

これが実際の例です-

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

javascript - nightmare.js で URL をループするときの非同期チャレンジ

async モジュールを使用して、nightmarejs で複数の URL を反復処理しています。毎回再認証する必要があるため、新しいナイトメア インスタンスを作成できません。

だから私は非同期モジュールを使用しようとしています。個々の URL ではなく、すべての反復の URL が配列内の最終的な URL であるという (古典的な) 問題が発生しています。asyncモジュールを使用するとこれが修正されると思いました(letも使用してみました)が、まだ問題が発生しています

アドバイスをありがとう

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

javascript - nightmare.jsで複数の評価メソッドを実行するにはどうすればよいですか?

Web ページのコンテンツをスクレイピングするために nightmare.js を使用しています。

悪夢のインスタンスを認証した後、(ログインが必要な) 複数のページをループしてから、すべてのページの読み込みを実行する run メソッドを呼び出します。

各ページから特定のコンテンツを取得したいので、evaluate 関数を呼び出して、ブラウザー スコープ内で実行していることを確認します。評価関数から返されるものは何でも run メソッドの引数になります

しかし、評価関数を複数回 (ページごとに 1 回) 実行しようとしています。ただし、評価関数は出力を run メソッドに 1 回しか返すことができません。コンテンツをグローバル変数 (メイン スコープ内) にプッシュしようとしましたが、ブラウザー スコープ内からアクセスできません。

複数の評価メソッドを1つの悪夢のインスタンスで実行し、それぞれから情報を抽出する方法について誰かアドバイスできますか?

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

node.js - promise と vo.js でハピリプライを返す方法

ジェネレーターでvo.jsフロー制御を使用する非同期の nightmare.js プロセスがあります。

これは、Promise をインターフェイスで Hapi (v.13.0.0) に返す必要がありreply()ます。Bluebird やその他のpromiseライブラリの例を見てきました。誰かがこれの例を教えてください。

サーバー.js

こすり.js