3

私はutf-8テキストでPythonからのグーグル翻訳を使用しようとしています。json apiを呼び出すにはどうすればよいですか?HTMLに埋め込むためのドキュメントがありますが、適切なAPIまたはwsdlがどこにも見つかりません。

ありがとうラファエル

4

4 に答える 4

7

これが最終的に私のために働くコードです。ajax API なしで Web サイトを使用すると、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
于 2009-07-16T14:02:54.057 に答える
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
于 2011-05-01T06:37:20.307 に答える
1

私が見つけたものを見てください:http://code.google.com/intl/ru/apis/ajaxlanguage/terms.html

興味深い部分は次のとおりです。

お客様は、お客様のエンド ユーザーまたはその他の第三者に次のことを許可することはありません。 .... * 長さが 5000 文字を超える要求を送信する。....

于 2010-03-25T18:57:42.783 に答える
0

javascript から使用する必要がある ajax API http://code.google.com/apis/ajaxlanguage/について話していると思うので、「Python からの Google 翻訳」の意味がわかりません。

あるいは、Python から翻訳機能を使用する必要がある場合は、翻訳ページに直接クエリを実行し、xml/html ライブラリ (beautiful Soup、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)
于 2009-07-16T11:16:35.807 に答える