Accéder au code source d'une page Web, à peu près, tout le monde sait le faire. Il suffit en effet de cliquer sur voir le source dans son navigateur préféré et on peut alors l'enregister dans un fichier si c'est nécessaire pour l'usage souhaité. Faire la même opération par programme est plus difficile et cette page se propose d'en exposer une solution.
Ancienne version de cette page pour netsurf 3.9
Ancienne version de cette page pour netsurf 3.10
Il existe 2 types de pages: les statiques comme celle que vous êtes en train de lire et les dynamiques qui sont composées et mise à jour dans la mémoire de votre machine par javascript avant dêtre affichées sur votre écran.
Pour récupérer les pages statiques, on peut utiliser wget ou curl qui fonctionnent très bien.
Pour récupérer les pages dynamiques, il faut utliser un navigateur qui charge les éléments de la page et les fragments de code javascript qui sont exécutés pour compléter la page. La page étant dans la mémoire du navigateur, il est possible de l'enregister dans un fichier. C'est ce qu'un humain fait tout les jours, sans problème, puisqu'il a des doigts pour cliquer.
Maintenant il s'agit de le faire par programme. Il existe, en effet, un programme xdotool qui permet de créer des évènements X11 et de les envoyer à l'application et simuler ainsi les clicks. La séquence d'utilisation est à peu près la suivante:
Comme on peut le voir, c'est acrobatique et comme les choses ne se font pas toujours à la même vitesse les temporisations sont un peu critiques et le résultat n'est pas toujours correct.
Netsurf est un petit navigateur rapide. Il était utilisé avec la méthode précédente et il fait correctement le travail de charger et assembler les pages en exécutant le code javascript. Puis il attend que l'on intervienne. Avec les versions précédentes, un patch permettait de générer un fichier html de la page. Avec cette version, la page source est affichée et peu être exportée dans un fichier soit en html, soit sous forme text et même sous format pdf (non opérationnel actuellement), moyennant quelques commandes. Par example "ctrl S" suivi d'une fenêtre d'acquisition du nom de fichier permet de souvegarder le fichier html. Ceci permet de passer de patch.
Si l'on veut compiler, il faut télécharger les sources de la version en cours par exemple netsurf-all-3.11.tar.gz, extraire le source, Vérifier que les binaires ou librairies suivants sont installés :
$ wget http://download.netsurf-browser.org/netsurf/releases/source-full/netsurf-all-3.11.tar.gz $ tar zxvf netsurf-all-3.11.tar.gz $ cd netsurf-all-3.11/netsurf $ make V=1 # pour gtk3 $ make install
Après compilation, on dispose d'un binaire nsgtk3.
Le binaire est installé avec le nom netsurf-gtk3. Ce binaire est sensé être identique à celui de la distribtion qui est strippé. Il n'est pas utile d'installer les 2 versions.
L'utilisation normale de netsurf:
$ netsurf-gtk3 ou $ netsurf-gtk3 <url de la page> $ netsurf-gtk3 rvq.fr
rvq.fr n'est ps la meilleure pqge de test parce qu'elle n'utilise pas jascript.
Il s'agit de lancer netsurf et de lui faire sortir le résultat voulu dans un fichier pour un taitement spécifique. Plusieurs utilitaires comme xdotool, libvevdev, gnee, actiona sont disponibles sous linus. Il faut choisir le plus adapté à son cas personnel.