|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
按照小甲鱼老师的爬虫代码实现之后出现{"errorCode":50}的错误,通过在网上找资源发现是有道采用了反爬技术,在表单数据上加了salt和sign用来加密,通过查找它的.js代码,找到了他的加密规则,并用py对接上了它的接口,但还是会报错误,又在贴吧上看到有人说把url中的_o去掉,结果行了!!!
虽然很高兴,但是还是不明白为什么去掉_o之后就行了??有没有高人指点下?
- from urllib import request
- from urllib import parse
- import random
- import time
- import hashlib
- import json
- content = input('你要翻译啥?')
- salt = str(time.time()*1000 + random.randint(0,9))
- b = "fanyideskweb"
- c = "rY0D^0'nM0}g5Mm1z%1G4"
- sign = hashlib.md5((b+content+salt+c).encode('utf-8')).hexdigest()
- url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
- data = {}
- data['i'] = content
- data['from'] = 'AUTO'
- data['to'] = 'AUTO'
- data['smartresult'] = 'dict'
- data['client'] = 'fanyideskweb'
- data['salt'] = salt
- data['sign'] = sign
- data['doctype'] = 'json'
- data['version'] = '2.1'
- data['keyfrom'] = 'fanyi.web'
- data['action'] = 'FY_BY_CLICKBUTTION'
- data['typoResult'] = 'true'
- data = parse.urlencode(data).encode('utf-8')
- response = request.urlopen(url,data)
- result = response.read().decode('utf-8')
- # print(result)
- target = json.loads(result)
- print('结果是:%s'%target['translateResult'][0][0]['tgt'])
复制代码
|
|