traduce url con google traduce desde script en python

Estoy tratando de usar el traductor de google de un script de python:

#!/usr/bin/env python from urllib2 import urlopen from urllib import urlencode base_url = "http://www.google.com/translate?" params = (('langpair','en|es'), ('u','http://asdf.com'),) url = base_url+urlencode(params) print "Encoded URL: %s" % url print urlopen(url).read() 

Estoy recibiendo el error 403 cuando lo uso.

 # ./1.py Encoded URL: http://www.google.com/translate?langpair=en%7Ces&u=http%3A%2F%2Fasdf.com Traceback (most recent call last): ... urllib2.HTTPError: HTTP Error 403: Forbidden 

Sin embargo, la misma URL funciona bien cuando se accede desde el navegador. ¿Alguien podría detectar el error? ¿O es que google no permite este tipo de uso?

Gracias por adelantado

    Si Google no le permite hacer esto, puede traducir de manera programática la fuente del sitio web normal a través de las API de Google.

    Escribí una función para esto hace un rato:

     def translate(text, src = '', to = 'en'): parameters = ({'langpair': '{0}|{1}'.format(src, to), 'v': '1.0' }) translated = '' for text in (text[index:index + 4500] for index in range(0, len(text), 4500)): parameters['q'] = text response = json.loads(urllib.request.urlopen('http://ajax.googleapis.com/ajax/services/language/translate', data = urllib.parse.urlencode(parameters).encode('utf-8')).read().decode('utf-8')) try: translated += response['responseData']['translatedText'] except: pass return translated 

    Deberías estar usando la API de Google. Encontré y probé este código, funciona:

     #!/usr/bin/env python from urllib2 import urlopen from urllib import urlencode import sys 

    #!/usr/bin/env python from urllib2 import urlopen from urllib import urlencode import sys

    lang1 = sys.argv [1]
    lang2 = sys.argv [2]
    langpair = ‘% s |% s’% (lang1, lang2)
    text = ” .join (sys.argv [3:])
    base_url = ‘http: //ajax.googleapis.com/ajax/services/language/translate?’
    params = urlencode (((” v ‘, 1.0),
    (‘q’, texto),
    (‘langpair’, langpair),))
    url = base_url + params
    content = urlopen (url) .read ()
    start_idx = content.find (‘”translateText”: “‘) + 18
    traducción = contenido [start_idx:]
    end_idx = translation.find (‘”},”‘)
    traducción = traducción [: end_idx]
    imprimir traducción

    fuente

    Tu problema es porque no tienes encabezados.

    (lo que le dice a google cual es tu navegador y compatibilidad)

    Tuve este error antes cuando hice mi API de Google Translate

    Lo puedes encontrar aquí: https://github.com/mouuff/Google-Translate-API