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

分类: 计算机技术
推荐阅读:
什么是可打印字符? 可打印字符是指在文本中可以显示和输出的字符,包括字母、数字、标点符号和一些特殊符号。根据ASCII编码标准,ASCII码范围内的可打印字符的值为 32(空格)到 126(波浪号)。
Golang中 import cycle not allowed 的解决方法 在Go语言中,在使用import导入相应的包时,你可能会碰到 import cycle not allowed 这样的问题,出现这样的问题是你的包没有规划好,导致包相互依赖;
Python next()函数 next() 是 Python 的内置函数之一,用于获取迭代器中的下一个元素。
Golang中 :=的详细用法 在Go语言中:=运算符被用来声明变量以及给变量赋值,它可以自动推断变量类型;
使用Python求取前n个自然数的总和 给一个自然数n,使用Python求取前n个自然数的总和;
Rust stringify宏的用法和示例 在Rust中,stringify是一个宏,它接受任何合法的Rust标识符,并将其转换为字符串;这种转换发生在编译时,而不是运行时,这意味着它对于生成代码或诊断消息非常有用。