Discussion utilisateur:Probot/ArticlesRecents



getWhatlinkshere

modifier

La récupération de la liste avec une expression régulière.

def getWhatlinkshere(pageName):
    conn = httplib.HTTPConnection('fr.wikipedia.org')
    # attention, s'il y a plus de 5000 articles liés, il faut changer l'offset ci-dessous
    # (5000 = limite sur Wikipédia lors de la création d'une liste)
    conn.request('GET', "/w/wiki.phtml?title=Special:Whatlinkshere&target=%s&limit=5000&offset=0&action=edit" % pageName)

    # connexion serveur et lecture
    reponse = conn.getresponse()
    article = reponse.read()

    # expressions régulieres pour récuperer l'article
    #<!-- start content -->
    debut = re.search('<!-- start content -->', article).end()
    fin = re.search('<!-- end content -->', article).start()
    contenu = article[debut:fin]

    debut = re.search('.<ul>', contenu).end()
    fin = re.search('</ul>\nV', contenu).start()
    contenu = contenu[debut:fin]
    #print contenu[debut:fin]

    # recupère tous les nom de pages
    regex = re.compile(' title="([^"]*)"')
    elements = regex.findall(contenu)


    result = []
    # mise en forme du résultat
    for name in elements:
        if name == "":
            continue
        name = urllib.unquote(name)
        name = unicode(name, 'utf-8')

        # fixe quelques entitées html
        name = name.replace('<', '<')
        name = name.replace('>', '>')
        name = name.replace(''', "'")
        name = name.replace('"', '"')
        name = name.replace('&', '&') # doit être dernier
        print name
        result.append(name)
        
    return result


Retour à la page de l’utilisateur « Probot/ArticlesRecents ».