Phantomjs
Apparence
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 |