Pythonnewers 发表于 2020-3-23 13:18:12

[python]爬取有道的error code:50

import urllib.request
import urllib.parse
import json
import hashlib
import time
import random
word=input('打出您想翻译的话').encode(encoding='utf-8')
salt=(int(time.time()*1000)+random.randint(0,10))
md5=hashlib.md5()
g=("fanyideskweb"+str(word)+str(salt)+"Nw(nmmbP%A-r6U3EUn]Aj").encode('utf-8')
g=md5.update(g)
sign=md5.hexdigest()
url='http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
ts=int(time.time()*1000)
bv='acc97416ef67184f42e5a4a03c3d52ab'
data={}
data['i']= word
data['from']= 'AUTO'
data['to']='AUTO'
data['smartresult']= 'dict'
data['client']='fanyideskweb'
data['salt']= salt
data['sign']= sign
data['ts']= ts
data['bv']: bv
data['doctype']= 'json'
data['version']= '2.1'
data['keyfrom']='fanyi.web'
data['action']= 'FY_BY_CLICKBUTTION'
data=urllib.parse.urlencode(data).encode('utf-8')
h=urllib.request.urlopen(url,data)
html=h.read().decode('utf-8')
train=json.loads(html)
print(html)

这段源码运行就会显示{"errorCode":50}
我看网上有说可以删除_o,但是那样是用原来的接口,我写这个就是为了练习技术,并不想走捷径,希望大佬们能给我看看哪里出现的问题
PS:我今天一天都在写这个,我现在头疼...{:10_266:}

wp231957 发表于 2020-3-23 15:58:24

那你就去解析它的加密算法吧
这东西悟性不够,可能一辈子都解不开

Pythonnewers 发表于 2020-3-23 16:34:01

wp231957 发表于 2020-3-23 15:58
那你就去解析它的加密算法吧
这东西悟性不够,可能一辈子都解不开

莫非这辈子与爬虫无缘了吗{:10_266:}

sam_wu 发表于 2020-4-19 22:04:05

Pythonnewers 发表于 2020-3-23 16:34
莫非这辈子与爬虫无缘了吗

哈哈,我也尝试了好久,目前不加_o真的爬不出来,先放一下,以后再来解决吧

sam_wu 发表于 2020-4-19 22:21:18

https://blog.csdn.net/Mr_blueD/article/details/90581634 这有个高手的爬虫,他改了header里的cookie, 不需要去掉_o就能爬出来,很犀利。我试过了,可以实现
页: [1]
查看完整版本: [python]爬取有道的error code:50