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.