web-dev-qa-db-ja.com

PhantomJS:通話時にユーザーエージェントを指定する

次のように、PhantomJSを使用してWebページを呼び出しています。

page.open('http://example.com', function (s) {
  console.log(page.content);
  phantom.exit();
});

Drupal Simpletestsのコンテキストでこれを使用しています。実際のデータベースの代わりにテストデータベースを使用するには、特別なUSERAGENTを設定する必要があります。Webページをフェッチしたいのですが、特定のユーザーエージェント。たとえば、PHP Curlの場合、cUrl呼び出しを行う前にCURLOPT_USERAGENTを使用してこれを行うことができます。

ありがとう!

アルバート

30
alberto56

Phantomjs examples directoryseragent.js ファイルで答えを見つけました:

var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('http://www.httpuseragent.org', function (status) {
    if (status !== 'success') {
        console.log('Unable to access network');
    } else {
        var ua = page.evaluate(function () {
            return document.getElementById('myagent').innerText;
        });
        console.log(ua);
    }
    phantom.exit();
});
51
alberto56