Programmation en Python

Extraire les liens d'une page web

Analyser une page web ("page parser" en anglais) est une opération relativement courante et peut se faire avec un certain nombre de bibliothèque.
Je cherchais néanmoins à écrire ce type de programme sans bibiothèque externe (donc sans avoir à installer celle-ci, par exemple sur des machines où la question du droit et de l'administration se pose).
Ci-dessous, en quelques lignes un programme qui fait ceci, avec seulement la bibliothèque urllib native de python.
On éméet une requête vers une adresse, on récupère le texte intégral de la page web. Ensuite, via la fonction find qui retourne la position de la première occurence rencontrée du mot recherché. On se place alors à cette position, l'URL d'un lien se trouve jsute après href" et avant le prochain guillemet ".
Enfin la fonction find retourne la valeur -1 lorsque le mot recherché (ici donc href) n'est pas (ou plus) trouvé.
import urllib.request

myurl='https://xymaths.fr'

response=urllib.request.urlopen(myurl)
texte = response.read();texte=str(texte)

end=0
url=[]
while not(end==1):
    a=texte.find("href");
    if (a==-1):
        end=1
    else: 
        s=0
        while not(texte[a+6+s]=='"'):
            s=s+1
        url.append(texte[a+6:a+6+s])
        texte=texte[a+6+s:]

print(url)
print("Nombre de liens trouvés:",len(url))
Top Programmation en python