时代大侠 发表于 2020-4-5 13:54:07

用爬虫使用有道词典就是一直返回errorcode:50,改了好多地方都不行

import urllib.request
import urllib.parse
import json
import time
import random
import hashlib

#生成md5字符串
def getMd5(value):
    md5 = hashlib.md5()
    md5.update(bytes(value,encoding='utf-8'))
    md5_str = md5.hexdigest()
    return md5_str

#输入需要翻译的文字
content = input('请输入需要翻译的句子:')

#生成salt值
r = str(int(time.time()*1000))
salt = r + str(int(random.random()*10))

#生成sign
value = "fanyideskweb" + content + salt + "@6f#X3=cCuncYssPsuRUE"
md5_str = getMd5(value)



head = {
    'Accept': 'application/json, text/javascript, */*; q=0.01',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Connection': 'keep-alive',
    'Content-Length': str(233+len(content)),
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'Cookie': 'DICT_UGC=be3af0da19b5c5e6aa4e17bd8d90b28a|; OUTFOX_SEARCH_USER_ID=506260966@223.107.129.197; JSESSIONID=abcYjeQ-CFnD_dLfPaifx; OUTFOX_SEARCH_USER_ID_NCOO=2052442007.1493692; ___rl__test__cookies=1586058282296',
    'Host': 'fanyi.youdao.com',
    'Origin': 'http://fanyi.youdao.com',
    'Referer': 'http://fanyi.youdao.com/?keyfrom=dict2.index',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest'
}


url = 'http://fanyi.youdao.com/translate_o?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'] = md5_str
data['ts'] =r
data['bv'] ='70244e0061db49a9ee62d341c5fed82a'
data['doctype'] ='json'
data['version'] ='2.1'
data['keyfrom'] ='fanyi.web'
data['action'] ='FY_BY_CLICKBUTTION'


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')
print(html)



Hoiste 发表于 2020-4-5 14:46:45

其他地方我也看不太懂,不过应付有道的反爬把网址里面的_o去掉然后其他按照视频弄就可以直接开爬了

zltzlt 发表于 2020-4-5 17:22:19

请见:https://fishc.com.cn/thread-163889-1-1.html

zltzlt 发表于 2020-4-5 17:22:35

head 完全可以不用加的

时代大侠 发表于 2020-4-6 10:31:33

zltzlt 发表于 2020-4-5 17:22
head 完全可以不用加的

head加不加都会出现errorcode:50

时代大侠 发表于 2020-4-6 10:32:42

Hoiste 发表于 2020-4-5 14:46
其他地方我也看不太懂,不过应付有道的反爬把网址里面的_o去掉然后其他按照视频弄就可以直接开爬了

我就是常识不去掉_o怎么能够爬成功,按照网上教学修改了salt和sign都失败了

zltzlt 发表于 2020-4-6 12:51:31

时代大侠 发表于 2020-4-6 10:32
我就是常识不去掉_o怎么能够爬成功,按照网上教学修改了salt和sign都失败了

参考:https://blog.csdn.net/levon2018/article/details/80343531

sam_wu 发表于 2020-4-19 21:23:00

时代大侠 发表于 2020-4-6 10:32
我就是常识不去掉_o怎么能够爬成功,按照网上教学修改了salt和sign都失败了

我也是尝试了好多次,都不行,只能去_o了,等待未来有技术大佬来解决
页: [1]
查看完整版本: 用爬虫使用有道词典就是一直返回errorcode:50,改了好多地方都不行