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模块的导入和使用 Qt拥有众多的模块帮助你构建应用程序,例如QtCore,QtGui,QtNetwork,QtOpenGL,QtQuick,QtQml,QtWidgets等等;本文将讲解PySide6常用模块的功能以及在Python中的导入和使用方法;
python object()函数 object() 是 Python 的内置函数之一,它返回一个新的 object 对象。这个对象没有任何特殊的属性或方法,它是所有类的基类,即所有 Python 类都直接或间接地继承自 object 类。
Python bytes()函数 bytes 是 Python 中的一个内置类,用于表示二进制数据。bytes 对象是不可变的,即一旦创建,就不能修改其中的元素。由于二进制数据通常是不可变的,因此 bytes 类型广泛应用于文件、网络通信等场合。
Python pdb调试器详细教程 在Python可使用一个叫pdb的模块用于调试代码;pdb模块为Python程序定义了一个交互式的源代码调试器,你可通过它设置断点、逐行执行、堆栈检查等等常用调试功能;
一条Linux命令让你看起来很忙还很酷 在Linux系统下,如果你想让你的终端看起来很忙,或者想在某人面前装酷,那么你一定需要这条命令来实现:
Python计算数组的总和 给定一个整数数组,使用Python计算其元素的总和;