代码之家  ›  专栏  ›  技术社区  ›  Dustin Getz sunsations

从python调用google translate

  •  4
  • Dustin Getz sunsations  · 技术社区  · 16 年前

    我要执行 this script (view source) 它使用Google从Python转换Ajax API,并且能够传递参数并返回答案。我不在乎HTML。

    我知道我需要嵌入某种类型的javascript解释器。这是否意味着我需要一个浏览器实例并对其进行操作?从python访问这个API最干净的方法是什么?

    3 回复  |  直到 12 年前
        1
  •  3
  •   tefozi    16 年前

    你可以使用 google-api-translate-python 与谷歌API交谈。

    编辑: 不清楚来源在哪里,找到了他们 here .

        2
  •  3
  •   Lennart Regebro    16 年前

    您可以改用restful API。它是为非JavaScript环境设计的。

    http://code.google.com/apis/ajaxlanguage/documentation/reference.html#_intro_fonje

    从python应该很容易使用。

        3
  •  1
  •   Meori Oransky    12 年前

    最近不得不这样做,因为我必须翻译长字符串,所以我不能使用URL参数,而是使用数据负载。认为这是分享这个解决方案的最佳场所。
    技巧基本上是使用python的优秀请求模块post,但是由于google需要一个get请求,所以使用“x-http-method-override”头来覆盖要获取的请求方法。
    (简单地使用requests.get会弄乱数据有效负载)

    代码:

    import requests
    
    
    def translate_es_to_en(text):
        url = "https://www.googleapis.com/language/translate/v2"
        data = {
            'key': '<your-server-google-api-key>'
            'source': 'es',
            'target': 'en',
            'q': text
        }
        headers = {'X-HTTP-Method-Override': 'GET'}
    
        response = requests.post(url, data=data, headers=headers)
        return response.json()
    

    希望这能帮助任何人解决这个问题