一、有道词典
有道在线翻译有自动翻译功能(Ajax),我们可以借助这个功能在不用click的情况下,利用python实现我们的翻译小程序。
二、思路
爬虫思路类似,继承有道在线翻译功能,写在代码里了。
三、代码
import urllib
from urllib import request
import time
import re
#这是个请求头,为了让服务器检测为浏览器登录,是一个字典形式,里面也可加入cookie
header={
"User-Agent":"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36"
}
#有道在线翻译的网址
url="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
#http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule
while 1==1:#死循环,实现不用重启程序,循环翻译
key=input("请输入需要翻译的文字: ")
#这个是在network中查看,复制过来,改成字典即可
formdata={
"i":key,
"from": "AUTO",
"to": "AUTO",
"smartresult": "dict",
"client": "fanyideskweb",
"salt": "15645441808120",
"sign": "a133fd1480c8b9dab75ab7f7ec9a3c75",
"ts": "1564544180812",
"bv": "d775e8f5ecc1ab2619a27e7a67a4fbb9",
"doctype": "json",
"version": "2.1",
"keyfrom": "fanyi.web",
"action": "FY_BY_REALTlME",
"TypoResult":"false"
}
#编码
data=urllib.parse.urlencode(formdata).encode(encoding='UTF-8')
#请求网页
req=request.Request(url,data=data,headers=header)
#打开读取网页
resp=request.urlopen(req).read().decode()
#编写正则表达式,定位翻译内容
pat=r'"tgt":"(.*?)"}]]}'
#找到resp中的pat
result=re.findall(pat,resp)
#打印
print(result[0])
#延迟关闭
time.sleep(10)
四、执行
执行程序(例如输入:我是谁?、我在哪?、我在干什么?、translation、un sur deux(法语)、sagen(德语))
五、总结
**没有总结**