2016-10-18 12 views
0

コンテキスト:NodeJS/jQueryでいくつかのWebサイトをスクラップしていましたが、問題の原因となっていました。それから、私はそれについて研究し、PhantomJSがこの場合のより良い選択であることを発見しました。 〜Wohoooo、グレート。〜ボタンをクリックしたときにPhantomJSスクリプトを実行する

は、今、私が欲しいものを本当に簡単ウェブサイト(ボタンのみ?)ちょうどこのPhantomJSを実行するを構築することです。

私がやっている何のコード例:のような

var page = require("webpage").create(); 
page.open('https://website.that.Iam.scraping.com', function(status) { ... 

をそして、私はbashでこのPhantomJSを呼び出しています:

phantomjs scraper.js 

望ましい結果: ボタンでシンプルなUIのWebページ(それはphantomjsスクリプトを実行します)と、スクリプトの結果もWebページに表示されます。

質問:ボタンをクリックしたときにこのPhantomJSを実行するにはどうすればよいですか?出来ますか?

PS:私はRubyでウェブサイトを作成しようと考えていました。それは良い選択ですか?

ありがとうございました。 素敵な一日を!

+0

あなたが所有していないページでボタンをクリックすると、興味のあるものすべてを繰り返し処理する必要があります(おそらくX Pathを使用します)。プロポーションを停止し、あなたのファントムスクリプトが取得できるログメッセージをトリガーするリスナーを接続する必要があります。 – oooyaya

+0

_自分が所有していないページでボタンをクリックした場合_ ボタンが私のウェブページにあり、それは(別のページを傷つける)ファントムを実行します。 XPathはこれを行うことができますか? (phantomjsスクリプトを "アクティブにする"?)。 しかし、このリスナーを私のウェブページにどのように付けることができますか? –

答えて

2

ワンタッチで簡単なWebページをクリックし、それをクリックしてサーバと通信し、サーバがphantomjsスクリプトを実行して結果を得てから、あなたのWebページに送り返します。

はい、間違いありません。まず、コマンドライン

  • に呼び出されたときに、あなたのphantomjsスクリプトは、あなたが自分自身で何をしたい、それが正常に動作しなければならないんその後、あなたはそれを受け入れるだろう、サーバー側の要求ハンドラを構築する必要があることを確認してください

    1. あなたのボタンをクリックするリクエスト、phantomjsを呼び出す(ファントムの新しいサブプロセスを生成して実行を待つ、完了したら結果を得る、サーバ側のコードを単純なbashコマンドラインと考える)、結果を返すあなたのページに表示してください。

    ルビーはそのようなものを作るのはいいです。

  • +0

    間違いなくあなたはそれを持っています! あなたが言及したばかりのちょっとした質問:このファントムジをサーバ側で呼び出す方法は? つまり、_server.js_がローカルで実行されているとします。 このファイル内には、_phantomjs_を呼び出すボタン要求ハンドラがあります。 –

    +0

    したがって、_phantomjs_は、_server.js_に情報を戻す必要があります。 最後に、私はこの情報をサーバーから取得し、Webページに表示します。 この流れを意味しますか?あなたの返信をありがとう、男! –

    +1

    node.jsでは、[子プロセスのドキュメント](https://nodejs.org/api/child_process.html)をチェックすると、外部プログラムを呼び出す方法を知ることができます(ここではphantomjsスクリプトです)。また、 'child.stdout'から読み込むことで、phantomjsスクリプトから出力を得ることができます。これは、ほぼ同じことです。 –

    関連する問題