Introduction

Phantomjs est un outil en ligne de commande qui permet de récupérer des pages web en simulant le comportement d'un navigateur. On peut aussi créer des copies d'écran de la page récupérée. La page est récupéré à l'aide d'un script écrit en javascript.

Installation

En debian apt-get install phantomjs

Exemple d'utilisation

Récupérer une page et afficher le src/width/height de la première image. Le nom du fichier script est test.js

var page = require("webpage").create();
var homePage = "http://example.com/afile/"; // l'URL n'existe pas, ceci est une exemple.
page.open(homePage);
page.onLoadFinished = function(status) {
  var str = page.evaluate(function() {
    // la fonction console.log() ne fonctionne pas ici, car elle est exécutée dans le contexte de la page et pas celui de phantomjs.

    // get first image
    var img = document.querySelector('img');
    return img.src + ' ' + img.width + ' x ' +  img.height;
  }); 
  console.log(str);
  phantom.exit();
};

Exécution du script:

phantomjs test.js

Exemple de résultat: http://example.com/afile/aimg.png 100 x 200

Problème

Si la page contient des éléments en HTTP et HTTPS, il peut y avoir des erreurs de chargement. L'option --ignore-ssl-errors=true en ligne de commande permet d'ignorer ces erreurs.

phantoms --ignore-ssl-errors=true test.js