一、使用Chrome进行分析
- 找到post请求地址:
原地址是:1
url='http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
当经分析和查验,应使用如下地址:1
url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
获取headers
1
2
3
4
5
6
7
8
9
10
11
12
13headers={
'Accept': 'application / json, text / javascript, * / *; q = 0.01',
'Accept - Encoding': 'gzip, deflate',
'Accept - Language': 'zh - CN, zh;q = 0.9',
'Connection': 'keep - alive',
'Content - Type': 'application / x - www - form - urlencoded;charset = UTF - 8',
'Cookie': 'OUTFOX_SEARCH_USER_ID = 386503964 @ 10.108.160.18;JSESSIONID = aaaWewnrtmZEl - ulzptYw;OUTFOX_SEARCH_USER_ID_NCOO = 1961882954.448086;___rl__test__cookies = 1565847100747',
'Host': 'fanyi.youdao.com',
'Origin': 'http: // fanyi.youdao.com',
'Referer': 'http: // fanyi.youdao.com /',
'User - Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
'X - Requested - With': 'XMLHttpRequest'
}分析并获取data数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15data={
'i': key,
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': salt,
'sign':sign_b(key,salt),
'ts': salt[:-1],
'bv': md5_b('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'),
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_REALTlME'
}
通过Chrome调试工具分析post所带的data应有如上几个key
其中salt,sign,ts,bv 是经过处理后得到的数据
经Chrome断点调试分析得到(调试方法:先找到post地址,然后根据sign这个字段在查询里面找到相应的js文件:fanyi.min.js)
二、附上源码:
1 | import hashlib,time,random,requests |