Python调用谷歌翻译API实现文本翻译

本文将用Python调用谷歌翻译API实现文本翻译;

使用Python向谷歌翻译URL进行GET请求,得到网页内容后使用正则表达式进行解析,获得翻译结果;

由于谷歌翻译停止了对中国大陆的服务,以前的API无法继续使用;

下例代码中的API已进行过更改,但需要使用VPN或代理才能访问;

实现代码

import re
import html
from urllib import parse
import requests

GOOGLE_TRANSLATE_URL = 'http://translate.google.com/m?q=%s&tl=%s&sl=%s'

def translate(text, to_language="auto", text_language="auto"):

    text = parse.quote(text)
    url = GOOGLE_TRANSLATE_URL % (text,to_language,text_language)
    response = requests.get(url)
    data = response.text
    expr = r'(?s)class="(?:t0|result-container)">(.*?)<'
    result = re.findall(expr, data)
    if (len(result) == 0):
        return ""

    return html.unescape(result[0])

print(translate("你吃饭了么?", "en","zh-CN")) #汉语转英语
print(translate("你吃饭了么?", "ja","zh-CN")) #汉语转日语
print(translate("about your situation", "zh-CN","en")) #英语转汉语

输出:

Have you eaten?
食事はしましたか?
关于你的情况

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/p/python-calls-google-translate-api.html

分类: 计算机技术
推荐阅读:
Python 异常处理及常见错误 一般情况下,在python无法正确处理程序时,就会发生异常;当发生异常时,我们需要捕获它并进行处理,否则程序会终止运行。
Go语言中预定义常量iota的用法 iota可以被认为是一个可被编译器修改的常量,在每个const关键字出现时被重置为0,在下一个const出现之前,每出现一次iota,其所代表的数字会自增1.
C语言生成范围内的随机数 给定一个范围,当前时间做为随机种子,使用C语言生成范围内的随机数;
Python中执行JavaScript代码 在Python爬虫运用中,经常会碰到需要模拟JS(JavaScript)代码所实现功能的场景。如果使用Python来模拟出JS的功能,不仅需要把JS代码转换成Python代码,而且还可能会碰到经过加密或压缩过的JS代码,这时就需要先解密JS代码,不是一件轻松的事,那么我们为什么不直接由Python来调用JS代码呢。
配置Nginx实现简单的反盗链 本文通过Nginx的配置指令valid_referers来实现简单的图片和其它类型文件的防盗链。
Rust assert宏的用法和示例 在 Rust 中,assert宏用于在运行时检查条件是否满足;条件为true时,程序会正常执行,不会发生任何错误或中断,条件为false时,程序会panic,并在控制台输出相应的错误消息;