Travail avec Python

Dans cet exercice, le but était de nettoyer une page, d'en extraire des informations que l'on devait afficher dans un fichier. J'ai choisi un site facile, mais j'ai eu malgré tout des petits soucis dans le nettoyage de la page.

import urllib, re

url = urllib.urlopen("http://www.bourricot.com/CoupDeCoeur/VieuxSite/VieuxSite.html")

#permet de dialoguer avec l'url

codehtml = url.read()

#procédure de nettoyage AVANT de recopier dans le fichier de sortie

# nettoyage des balises texte = re.sub("<.*?(\n.*?)*?>","",codehtml) #PERMET DE NETTOYER LE TEXTE texte = re.sub("©","",texte) #PERMET DE NETTOYER LE TEXTE texte = re.sub("<.*?>","",texte) #ON NETTOIE LES BALISES expr = re.compile("\W+",re.U) #CHERCHE DES CARACTERES NON ALPHANUMERIQUES

print texte #ECRIT LE RESULTAT OBTENU DANS PYTHON

fichier = open("pagenettoyee.txt","w")

fichier.write(texte)

fichier.close()

# Statistiques :

infostat = open("infostat.txt","w")

infostat.write("Ce fichier contient "+str(len(texte))+ " caractères.\n")

expr = re.compile("\W+",re.U) # expr = expression

liste = expr.split(texte)

print liste

infostat.write("Le fichier contient "+str(len(liste))+" mots et "+str(len(set(liste)))+" mots différents.\n")

infostat.write(" ".join(sorted(set(liste),key=str.lower)))

listeord = sorted(set(liste),key=str.lower)

dicoFreq = {}

for mot in liste: if mot not in dicoFreq: # si le mot n'existe pas déjà dans le dictionnaire dicoFreq[mot] = 1 # alors il prend une valeur de 1 else: dicoFreq[mot] = dicoFreq[mot]+1 # sinon il existe et sa valeur est égale à sa valeur précédente plus 1

for clef in sorted(dict.iterkeys(dicoFreq)): infostat.write(clef+"\t" +str(dicoFreq[clef]) +"\n")

infostat.close()

Page nettoyée

Info stat