Phantomjs

De Banane Atomic
Aller à la navigationAller à la recherche

Liens

User agent

Javascript.svg
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.

Javascript.svg
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.

Javascript.svg
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.

Javascript.svg
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

Bash.svg
# cookies persistants
phantomjs --cookies-file=cookies.txt test.js

Installation

Bash.svg
sudo pacman -S phantomjs

sudo npm --global install phantomjs