PhantomJS: посочете потребителски агент, когато правите повикване

Използвам PhantomJS за извършване на повиквания към уеб страница, като тази:

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

Използвам това в контекста на Drupal Simpletests, които изискват от мен да задам специален 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