# coding: latin-1 import urllib # pour accéder une adresse internet import re # pour traiter les expressions régulières def list_url (site, root, nbpage = 100) : # expression régulières # tous les liens commençant par root et entre guillemets # exemple : "http://www.lemonde.fr/index,0.26.html" # on place entre parenthèses la partie intéressante : # c'est-à-dire tout ce qu'il y a entre les guillemets s = "\"(" + root + "[-_~a-zA-Z0-9/.?,]*?)\"" exp = re.compile (s, re.IGNORECASE) res = [ ] # résultat pile = [ site ] # page à explorer while len (pile) > 0 and len (res) < nbpage : # on bascule toutes les pages de pile vers res for u in pile : if u not in res : res.append (u) u = pile.pop () # on s'intéresse à la prochaine page try : f = urllib.urlopen (u) # accès à l'url text = f.read () # on lit son contenu f.close () # fin de l'accès liens = exp.findall (text) # recherche de tous les liens for u in liens : if u in pile or u in res : # on passe au suivant si continue # déjà vu # on enlève les images et autres fichiers indésirables if ".gif" in u or ".png" in u or ".jpg" in u : continue if ".cs" in u or ".css" in u or ".js" in u : continue # on ajoute le liens à la liste des liens à explorer pile.append (u) except IOError, exc: print "problème avec url ", u continue return res