|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 尽余欢xhc 于 2017-7-24 22:45 编辑
我在做小甲鱼老师在14章的例子:利用有道词典来翻译文本,却一直失败,花了很长时间没有搞清楚原因。
代码已附- import urllib.request
- import urllib.parse
- import json
- content = input('请输入需要翻译的内容:')
- url = ("http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule&sessionFrom=https://www.baidu.com/link")
- head = {}
- head['Referer'] = 'http://fanyi.youdao.com'
- head['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
- data = {}
- data['i'] = content
- data['from'] = 'AUTO'
- data['to'] = 'AUTO'
- data['smartresult'] = 'dict'
- data['client'] = 'fanyideskweb'
- data['salt'] = '1500905968164'
- data['sign'] = '27835850cdbe839dcb252526f3d6ac0b'
- data['doctype'] = 'json'
- data['version'] = '2.1'
- data['keyfrom'] = 'fanyi.web'
- data['action'] = 'FY_BY_CL1CKBUTTON'
- data['typoResult'] = 'true'
- data = urllib.parse.urlencode(data).encode('utf-8')
- req = urllib.request.Request(url, data, head)
- response = urllib.request.urlopen(req)
- html = response.read().decode('utf-8')
- target = json.loads(html)
- print('翻译结果: %s' % (target['translateResult'][0][0]['tgt']))
复制代码 ,希望各位能看看问题在哪。
刚开始没有修改User-agent也不行,错误信息如图,修改前后都是KeyError: 'translateResult'。
有道网站和之前的小甲鱼老师说的页面源码上不同,所传的参数data也不一样了。多了一些校验的参数,就像你写的
data['salt'] = '1500905968164'
data['sign'] = '27835850cdbe839dcb252526f3d6ac0b'
我也试着抓过,抓不了,是有的data参数会每次更新的,没法用爬虫去抓。
可以试着用scrapy试试看。
|
-
|