WebAnalyst (M2), année 2018

#Cours 1: Naviguer sur internet sans navigateur.

####Remarque. Il faut avoir un terminal sous Linux avec un accès à Internet, c’est obligatoire pour ce cours. Liste des commades usuelle du terminal. On va également réaliser des scriptes en python. Si vous n’êtes pas à l’aise avec ce langage je vous suggère très fortement de suivre ce cours.

Pour rendre un fichier python executable il faut ajouter au début du fichier:
#!/usr/bin/python3 et faire chmod u+x nom_du_fichier

####Objectif. Manipulation de curl, wget en ligne de commande et urrlib dans un scripte Python.

  1. Vérifier que curl, wget et python3 sont installés.
  1. Première étape trouver et parcourir brièvement la documentation
man curl
curl --help
man wget
wget --help

Introduction

  1. Utiliser curl et wget pour accéder à http://perdu.com et stocker le résultat dans un fichier perdu.curl.html et perdu.wget.html pour comparer les résultat.

  2. Utiliser la console python et urllib pour récupérer le résultat dans une variable.

####Remarque. Les trois méthodes semblent identiques mais n’offres pas les mêmes perspectives:

Réaliser un petit robot qui parcours une page internet.

  1. On va construire un petit script en python qui récupère une page web et en extrait les liens automatiquement.
#! /usr/bin/python3
import urllib.request
import sys
def aggregateur_de_liens(url):
    chaine = urllib.request.urlopen(url).read().decode("utf-8")
    return  [x.split('"')[1] for x in chaine.split("href=")[1:]]

print("\n".join(aggregateur_de_liens(sys.argv[1])))

Le module urllib.request permet d’utiliser la commande urlopen qui prend en argument une adresse et retourne un objet se comportant comme un fichier en python. Le contenu de cet objet peut être récupérer gràce à la méthode read. On obtient alors le contenu sous forme binaires qui peut être décoder en données textuelles grâce à la commande decode(“utf-8”). Le choix de l’encodage du text est libre, mais Python3 utilisant nativement de l’utf-8, c’est le choix ici le plus simple.

Enfin les liens sont récupérés en localisant le mot clef href= et à l’aide de la commande split.

Afin de pouvoir réaliser un script indépendant (que vous pouvez télécharger ici), On ajoute une gestion des arguments à l’aide de la commande argv du module sys.

Enfin, on utilise également la méthode join afin d’afficher les données de manière légérement lisible.

Le résultat de la commande ./robot.py http://www.lemonde.fr > lemonde.fr.url donne le fichier lemonde.fr.url.


Compiled the: dim. 07 janv. 2024 23:19:25 CET