Programme langue_fa_cor_288_.py


# 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

créé avec py2html version:0.62