0
点赞
收藏
分享

微信扫一扫

利用Python来制作一个中英互译器,并实现语音播报

科牛 2022-01-05 阅读 47

以下代码可以直接使用,唯一需要修改的就是headers部分user-agent的内容,将其更改为各位自己电脑浏览器对应的即可,如果自己不会找的文末会补充说明。


老规矩,直接给代码:

from urllib import request,parse
import json
import pyttsx3


def fanyi(keyword):
    url = 'https://fanyi.baidu.com/sug'
    # 构建请求对象
    data = {
        'kw': keyword
    }
    data = parse.urlencode(data)
    # 模拟浏览器
    headers = {'User-Agent':
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'}
    req = request.Request(url = url, data = bytes(data, encoding = 'utf-8'), headers = headers)
    res = request.urlopen(req)
    # 获取响应的json字符串
    str_json = res.read().decode('utf-8')
    # 把json转换成字典
    myjson = json.loads(str_json)
    info = myjson['data'][0]['v']
    str1 = '第' + str(i) + '次翻译'
    str2 = '输入文字为:' + keyword
    str3 = '翻译结果为:' + info
    print('*' + str1)
    print('*' + str2)
    print('*' + str3, '\n')
    for mystr in [str1, str2, str3]:
        engine.say(mystr)
        engine.runAndWait()


if __name__ == '__main__':
    i = 1
    engine = pyttsx3.init() # 初始化
    print('欢迎使用本翻译器,输入你需要查询的中文或英文,或输入quit来退出程序\n')
    while True:
        keyword = input('请输入翻译的单词或汉字:')
        if keyword == 'quit':
            break
        fanyi(keyword)
        i = i + 1

实现效果如下:


寻找自己电脑的user-agent方法:

1 任意打开一个网页,按F12(笔记本的话需要先点亮Fn键)

2 点击network,并按Ctrl+R刷新页面

3 找到document类型的文件,点击(一般在第一个)

4 在headers里面,进度条拉到最后,复制即可

 


举报

相关推荐

0 条评论