【青少年编程】黄羽恒:翻译小工具 -- 利用有道翻译
「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。
微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档)。
编程题
“翻译小工具”是来自「青少年编程竞赛交流群」中 「黄羽恒」 小朋友的作品。
小朋友们在学英语的过程中,通常会遇到两种情况,第一种将英语翻译成汉语,第二种将汉语翻译成英语。本题目要求小朋友们利用“有道翻译”提供的API接口做一个翻译小工具。
有道翻译的网址:https://fanyi.youdao.com/
首先,对“有道翻译”的网页进行分析。
其次,找到“有道翻译”发送请求的方法以及响应该请求的url地址。
再次,编写代码实现给出汉语返回英文、给出英文返回汉语的功能。
最后,输入“q!”结束程序。
1. 思路分析
接口地址:http://fanyi.youdao.com/translate
请求方法:post
请求参数:
参数 | 描述 |
---|---|
i | 待翻译的字符串 |
from | 源语言(可设置为auto) |
to | 翻译后的语言(可设置为auto) |
client | 客户端 |
doctype | 返回文档类型 |
version | 版本号 |
keyfrom | 键来源 |
action | 执行翻译的动作 |
2. 程序代码
import requests
import time
while True:
content = input('请输入要翻译的内容(输入“q!”退出):')
if content == 'q!':
break
url = 'https://fanyi.youdao.com/translate'
head = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36(KHTML.like.Gecko) '
'Chrome/39.0.2171.65 Safari/537.36'
}
data = {
'i': content, # 待翻译的字符串
"from": "AUTO",
"to": "AUTO",
"client": "fanyideskweb",
"doctype": "json",
"version": "2.1",
"keyfrom": "fanyi.web",
"action": "FY_BY_REALTlME"
}
try:
res = requests.post(url, data=data).json()
print(res) # 显示出返回的结果
target = res['translateResult'][0][0]['tgt']
print(target) # 打印翻译后的结果
time.sleep(1)
except:
print('遇到错误', res)
break
3. 结果展示
一级编程题:
01 森林的一天 02 舞者凯希 03 小狗散步 04 猫捉老鼠 05 城堡漫步 06 火箭发射 07 飞向太空 08 小狗长大记 09 运动起来 10 动物园之旅 11 球飞了 12 希神吓走猫头鹰 13 棒球运动会
二级编程题:
三级编程题:
小朋友投稿:
群内答疑: