私の phantomJS スクリプトでは、Phantom を使用して HTML コンテンツをスクレイピングする前に、Phantom でいくつかの変数を設定するためにいくつかの HTTP リクエストを作成したいと考えています。
PhantomJS から HTTP リクエストを行う正しい方法は何ですか? PageObject を使用して、Web ページであるかのように処理する必要がありますか? または、これに使用できる XHR 機能はありますか? 最初に Json データを取得したいと思います。
私の phantomJS スクリプトでは、Phantom を使用して HTML コンテンツをスクレイピングする前に、Phantom でいくつかの変数を設定するためにいくつかの HTTP リクエストを作成したいと考えています。
PhantomJS から HTTP リクエストを行う正しい方法は何ですか? PageObject を使用して、Web ページであるかのように処理する必要がありますか? または、これに使用できる XHR 機能はありますか? 最初に Json データを取得したいと思います。
考慮すべきいくつかの異なるオプションがあります。これを実現する最も簡単な方法は、WebPage モジュールを使用し、ロードするデータを含むページの URL を開き、他の Web ページ オブジェクトを使用して他のページをスクレイピングすることです。
var webpage = require('webpage');
var page = webpage.create()
page.open('<some url>', function(status) {
var option1 = page.evaluate(function() { ... });
var option2 = page.evaluate(function() { ... });
another = webpage.create();
another.open('<another url>', function(status) {
another.evaluate(function(opt1, opt2) {
// you have access to opt1 and opt2 here
}, option1, option2);
});
page.close();
});
次に、「別の」ページで option1 および option2 変数にアクセスできます。
もう 1 つのオプションは、上記の Joe のようにコマンド ライン引数を使用することです。変数のコマンド ライン引数を受け入れる PhantomJS コードを記述し、Web 要求を作成して解析し、適切なコマンド ライン引数を使用して PhantomJS プロセスを生成する Node.js/Python/Ruby スクリプトを記述することもできます。
どちらも機能しますが、コードを 1 つのファイルに保持したい場合は、最初の方法を使用します。