Phantomjs
De Banane Atomic
Aller à la navigationAller à la recherche
Liens
User agent
var page = require('webpage').create(); console.log('The default user agent is ' + page.settings.userAgent); // Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1 page.settings.userAgent = 'SpecialAgent'; |
Include JQuery
Permet d'inclure des fichiers javascript accessible via une url depuis le site cible.
page.open('https://wiki.bananeatomic.fr', function(status) { if (status === "success") { page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() { page.evaluate(function() { console.log($("#mw-content-text > p").text()); }); phantom.exit(0); }); } else { console.log('Unable to access network'); phantom.exit(1); } }); |
Inject
Permet d'injecter un fichier javascript local dans le site cible.
page.open('https://wiki.bananeatomic.fr', function(status) { if (status === "success") { if (page.injectJs('jquery.min.js')) { page.evaluate(function() { console.log($("#mw-content-text > p").text()); }); phantom.exit(0); } else { console.log('Inject error'); phantom.exit(1); } } else { console.log('Unable to access network'); phantom.exit(1); } }); |
Evaluate
console.log depuis evaluate
Par défaut, les messages de log provenant de evaluate ne sont pas affichés.
Pour changer ce comportement, utiliser le callback onConsoleMessage.
page.onConsoleMessage = function(msg) { console.log(msg); }; page.open('https://wiki.bananeatomic.fr', function(status) { page.evaluate(function() { console.log("title -> " + document.title); }); }); phantom.exit(); |
Cookies
# cookies persistants phantomjs --cookies-file=cookies.txt test.js |
Installation
sudo pacman -S phantomjs sudo npm --global install phantomjs |