問題タブ [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 投票する
2 に答える
5736 参照

node.js - NightmareJS スクリーンショット コールバック

このフレームワークを使用して、いくつかの URL のスクリーンショットを作成しています。スクリーンショットを撮るプロセスは非同期であり、メソッドはコールバックを実行する方法を提供しません。このスクリプトで各スクリーンショットが作成されるときにコールバックを実行したいと思います。

どうすればこれを行うことができますか?

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

node.js - Nightmare.js または phantom.js を使用して Web サイトをスクレイピングすると、phantom std out エラーが表示される理由

phantom.js を使用して Web スパイダーを作成しようとしています。ただし、理由がわからないエラーメッセージがたくさん表示されました。私のコードを以下に示します。

  • Nightmare.js を使用します

    /li>
  • Phantom.js を使用します

    /li>

エラーメッセージは同じです:

最後の行で結果を取得できますが、上記のように非常に多くのエラーが表示されます。その理由は何ですか?

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

javascript - このパッチを適用した非同期入力が Nightmarejs で機能しないのはなぜですか?

私は今夜​​ナイトメア js を試していましたが、実行時にユーザー入力を必要とするステップが必要でした。nightmarejs にこのようなことを許可する方法はありますか? lib に付属の type() メソッドを変更したところ、実行を停止してテキストを入力することができました。スクリプトも終了しますが、入力するはずのテキスト ボックスに、入力した内容が表示されません。同じものと組み込みの type() メソッドを使用すると、静的テキストがそこにあるため、dom セレクターが正しいと確信しています。以下のコードでは、prompt(msg) はsync-prompt のメソッドです。これは私が書いたメソッドですが、ページ上の要素を更新しません。

私は何を間違っていますか?

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

web-crawler - nightmarejs (または casperjs/phantomjs) を使用してフォームの自動送信とリダイレクトに従う方法

nightmarejs を使用して、ページ スクリプトによって呼び出されるいくつかのリダイレクトと自動フォーム送信を追跡したいと思います。そして、最後のページを取得したい。

たとえば、次のhttp://myexample/ようなページ コンテンツ:

このページのスクリプト要素がフォームを送信します。そして、への投稿リクエストhttp://somewhere/が送信されます。そして、http://somewhere/に 302 レスポンスを返しますhttp://another/

最後のページ ( http://another/) を取得するために、次のような nightmarejs コードを試しました。

メソッドを試しましたがurlevaluate最後のページを取得できませんでした。

このようなケースをサポートする方法はありますか? casperjs または phantomjs を使用した回答も大歓迎です。

アップデート

PhanomJS を試してみたところ、リダイレクトをたどることができました。しかし、エラーで接続に失敗するという別の問題がありSSL Handshake failedました。これを解決して--ssl-protocol=anyオプションを追加しました。

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

javascript - 同じテストでNightmarejsの複数のページ

Drupal サイトの 2 つの Web ページからタイトル タグ テキストを取得しようとしています。ナイトメアを使いたい。

これまでの私のコードは次のとおりです。

node app.jsを使用してこれを実行すると、最初のページに正常にログインできます。残念ながら、2 番目のページを開こうとすると、2 番目のページ呼び出し ( http://example.com/admin ) でアクセスが拒否されます。セッションは 2 番目の「goto」コマンドに引き継がれません。

同じ nightmarejs セッションで多くのページを開くにはどうすればよいですか?

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

javascript - ナイトメアを使用してファイルをダウンロードする

私は Nightmare を使用して、今日の新聞の自動ダウンローダーを作成しています。なんとかログインして、指定されたページに移動しました。しかし、Nightmare でファイルをダウンロードする方法がわかりませんでした。

ダウンロードボタンをクリックしてファイルをダウンロードしようとしました。ただし、これは機能しないようです。

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

node.js - 悪夢の HTTPS オプション: PhantomJS で ignoreSslErrors と sslProtocol が機能しない

[phantomjs -v 1.9.7] NightmareJS: https://github.com/segmentio/nightmare

タイムアウト オプションを使用する 1 つのサンプルでわかるように、オプションを最適に設定しました。

も試した

httpsページが開きません。

phantomjs を直接使用して同じページにアクセスすると、正常に動作します。

ページのタイトルはログインです

*** testBot.js

このコードは非常に厄介ですが、サイトを HTTPS ではなく HTTP に戻すと完全に機能します。

「ログイン」機能を呼び出したときに HTTPS が失敗し、入力ボックスが見つからないことはわかっています。

Nightmare は入力ボックスに対してエラーを返し、ページのタイトルは null です。「ボット」がログインしているかどうかに応じて、「ログイン」または「請求書の印刷」のいずれかになります。

次のスレッドは、「tlsv1」に関して私を正しい方向に導きました: PhantomJS は HTTPS サイトを開くことができませんでしたが、ナイトメア内で動作させることができません。

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

javascript - 撮影したスクリーンショットを使用している機能の悪夢型の結果

ちょっと悪夢のある要素のスクリーンショットを撮ろうとしていますが、このスクリーンショットから関数を使用してテキストを抽出し、その結果を で使用したいと考えていますnightmare.type()。問題は、使用するnightmare.run()と、スクリーンショットが存在しないというエラーが表示されることです。どうすればこれを修正できますか? これは私のコードです:

行を削除すると:

すべてが正常に機能し、スクリーンショットが取得されます。