处理有道云在线翻译的post请求,代码如下,最后运行代码,为什么运行错误?
from urllib import request
import urllib
#构造请求头信息
header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) App" "leWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.42" "40.198 Safari/537.36"}
# url网址 https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule url=r"http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
key="自学"
# post请求需要提供的参数
formdata={ "i":key,
"from":"AUTO",
"to":"AUTO",
"smartresult":"dict",
"client":"fanyideskweb",
"salt":"16622993877070",
"sign":"0fb63f31f6937a9f5360cfd32bb241cb",
"lts":"1662299387707",
"bv":"b0ff5d17f404993192085bf8b1e93587",
"doctype":"json",
"version":"2.1",
"keyfrom":"fanyi.web",
"action":"FY_BY_REALTlME" }
# 经过urlencode转码
data=urllib.parse.urlencode(formdata).encode(encoding="utf-8")
# 如果request里的data参数有值,那么这个请求为post请求 req=request.Request(url,data=data,headers=header) reponse=request.urlopen(req).read().decode()
print(reponse)