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

javascript - JS を使用しているページで値を入力/クリックできない

Google Webmaster Tool と Google Adwords で行ういくつかの反復タスクを自動化しようとしています。どちらの場所でも、私は少し動けなくなっており、助けが必要です (Nightmare.js を使用)

1) Google キーワード ツール: JS を使用してテキスト フィールドに値を追加しようとしていますが、それを実現できません。これがまさに何が起こっているかです: http://www.awesomescreenshot.com/image/60846/e8bc4231b7710ac2621aa134fa55b2cb JSを使用して値を入力できないため、ボタンをクリックすると次のエラーが表示されます: http://i. imgur.com/ExvxVnZ.png

2) Google ウェブマスター ツール: トップ ページとトップ クエリ セクションに移動できますが、Nightmare に [このテーブルをダウンロード] ボタンをクリックさせようとすると機能しません。コンソールを介して同じことを試みて、未定義になりました:http://www.awesomescreenshot.com/image/60927/78a5a98582f3c271d86ce0786db7210b

GoogleがこれらのアクションをJS経由でブロックしていると仮定すると、これをどのように解決できるか非常に興味があります

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

javascript - PhantomJS 評価する引数を渡す

要素のクラスの存在をテストしたい PhantomJS のラッパーとして NightmareJS を使用する小さなテスト アプリがあります。私はこのコードを持っています:

タグをハードコーディングするのではなく、querySelector メソッドに引数を渡すにはどうすればよいですか?

私が試してみました

ただし、PhantomJS は変数が見つからないというエラーを常に返します。

可変引数を querySelector メソッドに渡すにはどうすればよいですか?

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

node.js - 悪夢、PhantomJS、およびページ データの抽出

私は Nightmare/PhantomJS を初めて使用し、特定のページのすべてのタグの簡単なインベントリを取得するのに苦労しています。PhantomJS をソースからビルドし、NodeJS、Nightmare などを手動でインストールした後、Ubuntu 14.04 で実行していますが、他の機能は期待どおりに動作しているようです。

私が使用しているコードは次のとおりです。

これを「実際の」ブラウザ内で実行すると、ページ上のすべてのタグ タイプ (HTML、HEAD、BODY など) のリストが表示されます。ノード GetTags.jsを使用してこれを実行すると、1 行の出力が得られます。

私はそれが初心者の問題だと確信していますが、ここで何が間違っていますか?

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

jquery - ファントム stdout: TypeError: undefined はコンストラクターではありません (評価中)

Web ページをクロールするためにナイトメア(phantomjs ラッパー)を使用していますが、次のエラーが発生します。

ファントム stdout: TypeError: undefined はコンストラクターではありません ('$('a[href="/dien-thoai/apple-iphone-6-plus-64gb-ban-quoc-te--pid975.html"]' を評価しています) .get(0).closest('セクション')')

クリックした後のページのスクリーンショットは、期待どおりです。ブラウザのコンソールでテストすると、jquery コードは正常に実行されます。問題はphantomjsにあると思います

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

javascript - 悪夢: 動的な回数の評価を呼び出して、動的にページ分割されたサイトをスクレイピングする

動的にページ分割された Web サイトを破棄しています。ページは js を使用して読み込まれ、URL からはアクセスできません。

各ページから情報を抽出し、標準出力に出力し、次のページに移動してプロセスを繰り返す必要があります。

ページをロードするには、費用のかかるセットアップ プロセスが必要です。

セットアップを繰り返さずに実行する最も簡単な方法は、次のページがあるかどうか、およびプロセスを終了しないかどうかを確認する実行コールバックとして再帰関数を使用することです。

このようなもの:

問題は、実行後にインスタンスの状態が緩んでいるように見えることです。

ページごとにインスタンスをセットアップする必要なく、一度に 1 ページずつ情報を抽出するにはどうすればよいですか?

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

javascript - 複数のサイトをブラウジングして解析する悪夢のjs

github.com/segmentio/nightmareで 2 つのサイトを自動化しようとしています。

例:

  1. site_1 (一時的なメール サービス)にアクセスして、メールを受信したい。
  2. 次に、site_2にアクセスしてそのメールに入力し、フォームを送信します。
  3. 次に、site_1に移動し、メールが到着したかどうかを確認します
  4. アクティベーション リンクの電子メール メッセージを解析する
  5. 次に、そのリンクをクリックして、もう一度site_2に移動します。

…………など

Nightmare js と node.js は、この種のブラウザー操作に適していますか?

公式 API のような単純なことには問題ないからです。

複雑なものはどうですか? ありがとうございました

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

javascript - ES6 構文なしで Nightmare.js を使用して生成する

nightmare.js を使用して Web サイトをスクレイピングする単純なノード スクリプトを作成しました

ES6 機能をサポートしていない古いバージョンのノードを使用する環境でこれを実行したいと考えています。「yield」キーワードなしでこれを行う方法に関する github ページの例はありません。

ここで ES6 構文を使用しない使用例を見つけました: Webscraping with nightmare

私はこのように書きました:

クラッシュはしませんが、結果のログ機能は呼び出されません。

yield 構文を使用すると、「評価」からの戻り値を取得するのは非常に簡単ですが、それがないと、それを行う方法が見つかりませんでした。

更新 受け入れられた回答とそのコメントのおかげでこれを書きました。「Q」を使用し、0.12 より前のノード バージョンで動作します。