PhantomJS: указать User Agent при совершении звонка

Я использую PhantomJS для совершения вызовов на веб-страницу, например:

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

Я использую это в контексте простых тестов Drupal, которые требуют, чтобы я установил специальный USERAGENT, чтобы использовать тестовую базу данных вместо реальной базы данных. Я хотел бы получить веб-страницу определенного пользовательского агента. Например, в PHP с Curl я могу сделать это с помощью CURLOPT_USERAGENT перед выполнением вызова cUrl.

Спасибо!

Альберт


person alberto56    schedule 03.10.2013    source источник


Ответы (1)


Я нашел ответ в файле useragent.js в phantomjs каталог примеров:

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();
});
person alberto56    schedule 03.10.2013
comment
Я получаю Невозможно получить доступ к сети. Я могу получить доступ к сайту через другие мои браузеры. Это внутренний доступный сайт. Есть ли какие-то настройки, которые я должен настроить для доступа из Phantom. - person DoodleKana; 07.11.2014