BeautifulSoup – Sam & Max http://sametmax.com Du code, du cul Wed, 30 Oct 2019 15:34:04 +0000 en-US hourly 1 https://wordpress.org/?v=4.9.7 32490438 Traduire du texte avec UrlLib, BeautifulSoup et Google Translation http://sametmax.com/traduire-du-texte-avec-urllib-beautifulsoup-et-google-translation/ http://sametmax.com/traduire-du-texte-avec-urllib-beautifulsoup-et-google-translation/#comments Wed, 15 Feb 2012 20:03:57 +0000 http://sametmax.com/?p=152 Salut les hommes,

Qui n’a jamais voulu traduire un peu de texte automatiquement ? Des mots ou des phrase entières. On peut faire ça assez facilement avec UrlLib et BeautifulSoup.

Ouvrez un fichier test.py et collez-y le code suivant. Il faut avoir installé BeautifulSoup auparavant (easy_install BeautifulSoup ou pip install BeautifulSoup)

import urllib
import urllib2
from BeautifulSoup import BeautifulSoup

# texte à traduire
text = 'Respect my authority!'

# on créé les headers
headers = { 'User-Agent' : 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1',
'Referer': 'http://translate.google.com/'
}

# la langue originale du texte à traduire
lg_from = 'en'

# la langue dans laquelle on veut traduire l'article
lg_to = 'fr'

# paramètres à passer en POST
params = urllib.urlencode( {'hl': 'fr',
'ie': 'UTF8',
'text': text.encode('utf-8'),
'sl': lg_from,
'tl': lg_to}
)

# on formule la requête
request = urllib2.Request("http://translate.google.com/translate_t?" + urllib.urlencode({'sl': lg_from, 'tl': lg_to}), None, headers)
html = urllib2.urlopen(request, params).read()

# on récupère la traduction avec BeautifulSoup
translated_soup = BeautifulSoup(html)
print translated_soup('span', id='result_box')[0].text

Exécutons le code…

$python test.py
Respectez mon autorité!

Attention toutefois, Google n’autorise pas l’automatisation de ce genre de tâches sans passer par son API (payante).

]]>
http://sametmax.com/traduire-du-texte-avec-urllib-beautifulsoup-et-google-translation/feed/ 1 152