簡體   English   中英

我如何使用json google translate api?

[英]how do I use the json google translate api?

我正在嘗試使用utf-8文本從python中使用谷歌翻譯。 我如何調用json api? 他們有一個用於在html中嵌入它的文檔,但我無法在任何地方找到合適的API或wsdl。

謝謝拉斐爾

這是最終適合我的代碼。 使用沒有ajax api的網站可以禁止你的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

使用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

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

這是有趣的部分:

您不會,也不會允許您的最終用戶或其他第三方:...... *提交超過5000個字符的任何請求; ....

我想你在談論ajax api http://code.google.com/apis/ajaxlanguage/ ,它必須在javascript中使用,所以我不明白你是什么意思“google translate from python”

或者,如果您需要使用python中的翻譯功能,您可以直接查詢翻譯頁面並使用xml / html庫解析它,例如美麗的湯,html5lib

實際上我做了一次,美麗的湯沒有在谷歌翻譯,但html5lib( http://code.google.com/p/html5lib/ )做了

你將需要做這樣的事情(從我更大的代碼庫復制)

def translate(text, tlan, slan="en"):

    opener = urllib2.build_opener()
    opener.addheaders = [('User-agent', 'translate.py/0.1')]

    htmlPage = opener.open(
            "http://translate.google.com/translate_t?" + 
            urllib.urlencode({'sl': slan, 'tl':tlan}),
            data=urllib.urlencode({'hl': 'en',
                                   'ie': 'UTF8',
                                   'text': text.encode('utf-8'),
                                   'sl': slan, 'tl': tlan})
        )

    parser = html5lib.HTMLParser(tree=treebuilders.getTreeBuilder("etree", cElementTree))

    etree_document = parser.parse(htmlPage)

    return _getResult(etree_document)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM