从python 调用有道接口总结爬虫的规律

步骤(1)根据下文链接学习如何从网页中找到对应的js文件并设置断点
https://jingyan.baidu.com/article/dca1fa6f0379a5f1a44052fd.html

步骤(2)将找到的js文件复制到pycharm里面搜索salt,找到的结果见下图
从python 调用有道接口总结爬虫的规律_第1张图片
步骤(3)有了断点就可以看到变量是怎么得到的,见下图所示
从python 调用有道接口总结爬虫的规律_第2张图片
步骤(4)根据CSDN中下文的链接跟随大佬学习如何从js中解析参数并写python脚本
https://blog.csdn.net/slwhy/article/details/79015030
和上文链接中大佬的文章中相比,新的有道更改了部分参数,具体代码如下:
----------------------------以下是脚本的全文--------------------------------------------

import requests
import time
import hashlib
import random
url='http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
headers={
		'Cookie': 'YOUDAO_MOBILE_ACCESS_TYPE=1; DICT_UGC=be3af0da19b5c5e6aa4e17bd8d90b28a|; [email protected]; JSESSIONID=abcpz17vgvGZ8aL8KiHUw; OUTFOX_SEARCH_USER_ID_NCOO=1634403883.7994204; ___rl__test__cookies='+str(int(time.time()*1000)),
		#'Host': 'fanyi.youdao.com',
		'Referer': 'http://fanyi.youdao.com/?keyfrom=dict2.index',
		'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0'
		 }
ts=str(int(time.time()*1000))
salt=str(int(ts))+str(random.randint(1,10))
t = input('输入要翻译的句子:')
u = 'fanyideskweb'
l = '@6f#X3=cCuncYssPsuRUE'
src = u + t + salt + l    # u 与 l 是固定字符串,t是你要翻译的字符串,i是之前的时间戳
m2 = hashlib.md5()
m2.update(src.encode('utf-8'))
sign = m2.hexdigest()
data={
	'i':t,
	'from': 'AUTO',
	'to': 'AUTO',
	'smartresult': 'dict',
	'client': 'fanyideskweb',
	'salt': salt,
	'sign': sign,
	'ts': ts,
	'bv': 'e2a78ed30c66e16a857c5b6486a1d326',
	'doctype': 'json',
	'version': '2.1',
	'keyfrom': 'fanyi.web',
	'action': 'FY_BY_CLICKBUTTION'
	}
#print('ts='+ts)
#print('salt='+salt)
#print('sign='+sign)
content=requests.post(url,headers=headers,data=data)
#print(content.json())
tgt=content.json()['translateResult'][0][0]['tgt']
print(tgt)

你可能感兴趣的:(python)