######### Mon code #! /usr/bin/env python# -*- coding: utf-8 -*-import reimport osfrom BeautifulSoup import BeautifulSoup from BeautifulSoup import BeautifulStoneSoup from htmlentitydefs import name2codepointimport urllib2def getpage(url): request_headers = { 'User-Agent': 'NothingButMe/0.0.1' } request = urllib2.Request(url, None, request_headers) urlfile = urllib2.urlopen(request) return urlfile.read()# Téléchargement du fichier page=getpage("http://fr.wikipedia.org/w/api.php?action=query&prop=revisions&titles=Wikip%C3%A9dia:AutoWikiBrowser/Typos&rvprop=content&format=xml")# Premier traitement, obtenir le contus entre <rev>soup=BeautifulStoneSoup(page)# Il semblerait que ca soit quelque chose comme : soup.api.query.pages.page.revisions.revpat=re.compile("&(\w+);")def repl(m): ent=m.group(1) if name2codepoint.has_key(ent): return unichr(name2codepoint[ent]) else: return u'?'temp=soup.api.query.pages.page.revisions.rev# Ouverture du fichier en écriturewriter=open('list-ok.txt', 'w')print dir(temp)for i in temp: text=pat.sub(repl, i) ## On extrait ce qui nous intéresse regex=re.match(r"<Typo word=\"(.*)\" find=\"(.*)\" replace=\"(.*)\" />",text) # Le mot : regex.group(1) # On recherche : regex.group(2) # On renplace par : regex.group(3) ## On remplace les $ par des \ if regex: temp1=re.sub(r"\$", r"\\", regex.group(2)) temp2=re.sub(r"\$", r"\\", regex.group(3)) #Et maintenant on écrit la liste comme elle doit ressembler writer.write(" (r'" + temp1 + "', r'" + temp2 + "')," + os.linesep)writer.close# Voila le contenus de i :<Typo word="verbalement" find="\b(v|V)erball?emm?ent\b" replace="$1erbalement" /><Typo word="vêtement" find="\b(V|v)(é|è|ê|ë|e)temm?ent(s?)\b' replace="$1êtement$3" /><Typo word="violemment" find="\b(v|V)ioll?(a|e)mm?ent\b" replace="$1iolemment" /><Typo word="visionner" find="\b(v|V)ision(age(s?)|aire(s?)|er|é|ais|ait|aient|e|euse(s?))\b" replace="$1isionn$2" /><Typo word="vu" find="\b(v|V)oeu(x?)\b" replace="$1u$2" /><Typo word="vux" find="\b(v|V)(oe|)us\b" replace="$1ux" /><Typo word="volontiers" find="\b(v|V)oll?ontier(s?)\b" replace="$1olontiers" /></pre>===W===<pre><Typo word="wagon" find="\b(W|w)aggon(s?)\b" replace="$1agon$2" /></pre>===X===<pre></pre>===Y===<pre></pre>===Z===<pre></pre># En beaucoups plus long...