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

分类: 计算机技术
推荐阅读:
PySide6 按钮(QPushButton) QPushButton 是 Qt 框架中表示可点击按钮部件的类。在 PySide6 中,你可以使用 QPushButton 类来创建和与图形用户界面(GUI)应用程序中的按钮交互。
关闭Shell时保持子进程继续运行 在Linux系统里,当你关闭 shell 或者终端时,没有经过 nohup 或 setid 等命令后台执行的程序也会随着 shell 的关闭而结束;如果你已经提交了命令,也没有使用 nohup 或 setid 进行处理,你可以用这一条命令实现退出shell或终端而保持进程不被关闭:
Rust使用莱布尼茨公式计算圆周率 莱布尼茨公式是一种用于计算圆周率的无限级数。该公式的形式如下:pi/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - ... 通过对无限级数进行逐项求和,可以逐步逼近圆周率的值。在 Rust 中,可以使用循环和累加器来计算莱布尼茨级数的前N项和。
Golang中的常量 Go语言使用const关键字来声明一个常量
使用sqlmap导致[CRITICAL] unable to connect to the target URL的原因 使用sqlmap工具进行扫描时,提示[CRITICAL] unable to connect to the target URL. sqlmap is going to retry the request(s);
Microsoft Office 禁用自动更新方法 近日,作者发现 Microsoft Office会偷偷摸摸的自动安装更新,这点是我无法忍受的,因为像这样的大型软件,随随便便更新以下就是几百兆的更新包,不仅占用网络资源,而且对我心爱的固态硬盘极为不利,而且这些软件更新推送很频繁;