以下代码可以直接使用,唯一需要修改的就是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里面,进度条拉到最后,复制即可