(Courriels de diversion: <exhumes@demangeaisons-relaxe.com> <disperseraient@admettront-pressentions.com> <ajustant@deplafonneront-dimensionnee.com> <fragmenterais@chirurgiens-terrifieriez.com> <motocyclette@evasion-succombiez.com> <frayait@redistribueras-ca.com> <sanatorium@bourrer-hemostatique.com> <abattoirs@constellation-consommions.com> <ressuscitees@colles-paralyses.com> <maximisera@garbure-rhabillaient.com> )
Jean-Michel a écrit : > Jean-Michel a écrit : > > > > Ou bien un script python qui appelle le service google? > > A titre d'illustration, l'ébauche de script suivant donne une URL sur le Japon, écrite en Russe, à traduire au service de traduction en ligne sus-cité. Il récupère les 3 frames, et pour chacune d'elle applique la redirection. Une fois la redirection effectuée, la page html est filtrée avec la fonction epure, mais ce n'est pas nécessairement le filtre souhaité... Le tout est dumpé dans la sortie standard. Quelques approximations HTML ont été faites. Bonne chance... #!/usr/bin/python # -*- coding: utf-8 -*- import sys import urllib import re import string import time langCode={ "arabic":"ar", "bulgarian":"bg", "chinese":"zh-CN", "croatian":"hr", "czech":"cs", "danish":"da", "dutch":"nl", "english":"en", "finnish":"fi", "french":"fr", "german":"de", "greek":"el", "hindi":"hi", "italian":"it", "japanese":"ja", "korean":"ko", "norwegian":"no", "polish":"pl", "portugese":"pt", "romanian":"ro", "russian":"ru", "spanish":"es", "swedish":"sv" } def setUserAgent(userAgent): urllib.FancyURLopener.version = userAgent pass #def translate(text, fromLang="English", toLang="German"): def translate(text, fromLang="Russian", toLang="French"): # urllib.FancyURLopener.version = "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008070400 SUSE/3.0.1-0.1 Firefox/3.0.1" setUserAgent("Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008070400 SUSE/3.0.1-0.1 Firefox/3.0.1") try: post_params = urllib.urlencode({"langpair":"%s|%s" %(langCode[fromLang.lower()],langCode[toLang.lower()]), "text":text,"ie":"UTF8", "oe":"UTF8"}) except KeyError, error: print "Currently we do not support %s" %(error.args[0]) return page = urllib.urlopen("http://translate.google.com/translate_t", post_params) content = page.read() page.close() return content def translate_url(url, fromLang="Russian", toLang="French"): content = translate( url, fromLang, toLang) content = string.replace(content,'><', ">\n<") content = string.replace(content,'&', "&") #FIXME: mieux envisageable... return content def epure(html): return re.sub ( '<span class="google-src-text" style="direction: ltr; text-align: left">(.*?)</span>', '', html) # \1 pas pris #<span class="google-src-text" style="direction: ltr; text-align: left"> def translate_url_main(url, fromLang="Russian", toLang="French"): content = translate_url(url, fromLang, toLang) #while ( match = re.search('<frame src="([^"]*?)"', content) ): matches = re.findall('<frame src="([^"]*?)"', content) for value in matches: #value = match.groups()[0] print print value page = urllib.urlopen("http://translate.google.com" + value ) time . sleep(3) content2 = page.read() content2 = string.replace(content2,'><', ">\n<") content2 = string.replace(content2,'&', "&") #FIXME: mieux envisageable... page.close() print print content2 print match = re.search( '<meta http-equiv="refresh" content="0;URL=([^"]*?)"' , content2 ) if (match): redirect_url = match.groups()[0] print redirect_url print page = urllib.urlopen(redirect_url) time . sleep(3) content3 = page.read() content3 = epure(content3) content3 = string.replace(content3,'><', ">\n<") print epure(content3) print return content def translate_text(text, fromLang="Russian", toLang="French"): content = translate( text, fromLang, toLang) match = re.search("<div id=result_box dir=\"ltr\">(.*?)</div>", content) value = match.groups()[0] return value print translate_text( "Высшим органом государственной власти и единственным законодательным органом в Японии является Парламент. Он состоит из двух палат: Палаты представителей и Палаты советников." ) print print translate_url_main( "http://ru.wikipedia.org/wiki/Япония" ) ----------------------------------------------------------------- Les listes de diffusion du CULTe - Pour une informatique libre http://www.CULTe.org/listes/ Pour se desabonner: mailto:linux-31-unsubscribe@CULTe.org?subject=Cliquez_sur_ENVOYER