Python入门学习(1):使用火狐浏览器搞有道翻译遇到的问题

环境:windows7,python3.5,Spyder,火狐浏览器

首先,本文章是参考大神资料中遇到一些问题,在此做一个记录。大神博客链接:点击打开链接

先贴问题:

(1)KeyError: 'translateResult'

from urllib import request
from urllib import parse
import json

Request_URL = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
#创建Form_Data字典,存储上图的Form Data
Form_Data = {}
Form_Data['type'] = 'AUTO'
Form_Data['i'] = 'Jack'
Form_Data['doctype'] = 'json'
Form_Data['Version'] = '2.1'
Form_Data['keyfrom'] = 'fanyi.web'
Form_Data['ue'] = 'ue:UTF-8'
Form_Data['action'] = 'FY_BY_REALTIME'
#使用urlencode方法转换标准格式
data = parse.urlencode(Form_Data).encode('utf-8')
#传递Request对象和转换完格式的数据
response = request.urlopen(Request_URL,data)
#读取信息并解码
html = response.read().decode('utf-8')
#使用JSON
translate_results = json.loads(html)
#找到翻译结果
translate_results = translate_results['translateResult'][0][0]['tgt']
#打印翻译信息
print("翻译的结果是:%s" % translate_results)

修改位置:将Request_URL中 translate_o 改为 translate(亲测有效,网上也都这么搞,没搞明白为啥)

(2)HTTPError: Internal Server Error

这个问题应该是因浏览器而异,参考的博客中是:Form_Data['xmlVersion'] = '1.8'在火狐浏览器中需要修改为:

 Form_Data['Version'] = '2.1'Form_Data['action'] = 'FY_BY_REALTIME'参下(火狐->有道->查看元素->网络->参数):

action	FY_BY_REALTIME
client	fanyideskweb
doctype	json
from	AUTO
i	Jack
keyfrom	fanyi.web
salt	1527300503556
sign	5cb0bbc51b1b96a51f74796335e854ae
smartresult	dict
to	AUTO
typoResult	false
version	2.1


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值