如何使用JSON谷歌翻译API?

3 投票
4 回答
10397 浏览
提问于 2025-04-15 12:56

我想在Python中使用谷歌翻译,处理的是utf-8编码的文本。请问我该如何调用这个json接口?他们有关于如何在html中嵌入的文档,但我找不到合适的API或者wsdl。

谢谢,
拉斐尔

4 个回答

1

看看我发现了什么: http://code.google.com/intl/ru/apis/ajaxlanguage/terms.html

这里有个有趣的部分:

你不能,也不允许你的最终用户或其他第三方去:

....

* 提交任何超过5000个字符的请求;

....

2

使用Peteris Kramins的xgoogle库(他的博客

>>> from xgoogle.translate import Translator
>>>
>>> translate = Translator().translate
>>>
>>> print translate("Mani sauc Pēteris", lang_to="en")
My name is Peter
>>>
>>> print translate("Mani sauc Pēteris", lang_to="ru").encode('utf-8')
Меня зовут Петр
>>>
>>> print translate("Меня зовут Петр")
My name is Peter
7

这是我最终能用的代码。直接使用网站而不通过ajax接口可能会导致你的IP被封,所以这样做更好。

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

# The google translate API can be found here:
# http://code.google.com/apis/ajaxlanguage/documentation/#Examples
def translate(text = 'hola querida'):
    tl="es"
    sl="en"
    langpair='%s|%s'%(tl,sl)



    base_url='http://ajax.googleapis.com/ajax/services/language/translate?'
    data = urllib.urlencode({'v':1.0,'ie': 'UTF8', 'q': text.encode('utf-8'),
                             'langpair':langpair})


    url = base_url+data

    search_results = urllib.urlopen(url)

    json = simplejson.loads(search_results.read())


    result = json['responseData']['translatedText']
    return result

撰写回答