web-dev-qa-db-fra.com

PhantomJS: spécifiez l'agent utilisateur lors d'un appel

J'utilise PhantomJS pour appeler une page Web, comme ceci:

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

J'utilise ceci dans le contexte de Drupal Simpletests, qui me demandent de définir un USERAGENT spécial afin d'utiliser la base de données de test au lieu de la vraie base de données. Je voudrais récupérer la page Web a agent utilisateur spécifique. Par exemple, en PHP avec Curl, je peux le faire avec CURLOPT_USERAGENT avant de faire un appel cUrl.

Merci!

Albert

30
alberto56

J'ai trouvé la réponse dans le fichier seragent.js dans le phantomjs répertoire d'exemples :

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