#はじめに
初心者の備忘録です。
Pythonで翻訳できないかな~、Google Cloud Translationは有料か~、おっgoogletransとかいうモジュールがあるんか~→エラーが出て使えない...
こんな状況だったときに以下の記事を見つけました。
3 分で作る無料の翻訳 API with Google Apps Script
#使い方
まず、記事の通りにウェブアプリケーションとして導入してURLが表示されるまで進めます。
アクセス方法は、 exec の後に ?text=翻訳したい文字列&source=翻訳前言語&target=翻訳後言語 を指定して GET リクエストする。
とあります。
試しに"cat"を翻訳してみました。
取得したURLはhttps://script.google.com/macros/s/AKfycbzPH7k0wm5QqP78MtGXt2cOZ_dR0X0G-jMxJODwZvQM3hG89Cct/exec
なので ?text=cat&source=en&target=ja を末尾に追加します。
アクセスしてソースを確認すると以下のようになっています。
"cat"が翻訳されて"ネコ"と表示されました。それ以外はなにもありません。
##翻訳結果を取得する
GETリクエストを送ってページからデータを取得できます。
PythonではRequestsモジュールのrequests.get()でGETリクエストできます。
params=で指定することで取得するデータを決められますが、先ほど開いたページでは翻訳されたテキスト以外何もデータがないのでrequests.get()にURLだけを放り込んで全部取得します。
以下はhogeを受け取って、翻訳結果を返す関数です。
from Requests import get
def trans(hoge):
trans_from = 'en'#翻訳元の言語(英語)
trans_to = 'ja' #翻訳先の言語(日本語)
trans_url = (
'https://script.google.com/macros/s/AKfycbzPH7k0wm5QqP78MtGXt2cOZ_dR0X0G-jMxJODwZvQM3hG89Cct/exec'
+ '?text=' + hoge + '&source=' + trans_from + '&target=' + trans_to
)
res = get(trans_url)
translated_hoge = res.text
return translated_hoge
returnの上2行でGETリクエストを送って、翻訳結果を取得しています。
res = get(trans_url)
print("res: {}" .format(res)) #res: <Response [200]>
translated_hoge = res.text
print("res.text: {}" .foramt(translated_hoge)) #res.text: 翻訳された結果
getの戻り値はレスポンス内容が格納されたオブジェクトです。resを出力するとResponse [200]となります。
textという属性にページのhtmlが格納されているので、翻訳結果が欲しい場合はres.textとしなければなりません。
#参考