赞
踩
打开有道翻译官网:
通过F12,找到网络一栏,寻找”POST”请求,并在“消息头”下找到请求网址,即翻译的原网址 :
观察“参数”一栏,在“数据表单”中找到了输入的字符串赋值给了参数“i”:
观察“响应”一栏,在“响应载荷”中找到了输出的字符串:
此处为字典格式,在代码分析中将对其进行解析。
在“消息头”的“请求头”中找到“User-Agent”:
不同设备对这一段的代码都不同,所以针对自己的设备,复制下这一段代码,用于后续代码编写,这是网站判断是否为爬虫的一个依据。
针对表单数据进行编写,可加入输入提示,并将输入的值赋值给参数“i”:
层层解析字典:
通过输出不断测试解析结果,得到最终翻译结果:
粘贴之前复制的“User-Agent”,以此避开网站第一步爬虫检索:
此处设置时间间隔,模拟人工操作,避开爬虫检索:
连接后台url,避开网页展示网址:
可见实验是成功的,完成了中英文之间的翻译。
'''爬虫有道词典''' import urllib.request import urllib.parse import json import time while True: content=input('请输入需要翻译的内容(输入“ql”退出程序):') if content=='ql': break #获取后台url url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule' head={} #隐藏爬虫信息 head['User-Agent']='Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0' #编辑表单 data={} data['i']=content data['from']='AUTO' data['to']='AUTO' data['smartresult']='dict' data['client']='fanyideskweb' data['salt']='15590456742344' data['sign']='238073a9cc158731f9feea2f63589c3f' data['ts']='1559045674234' data['bv']='e2a78ed30c66e16a857c5b6486a1d326' data['doctype']='json' data['version']='2.1' data['keyfrom']='fanyi.web' data['action']='FY_BY_CLICKBUTTION' #确认新表单 data=urllib.parse.urlencode(data).encode('utf-8') #传入url和data req=urllib.request.Request(url,data,head) #获得响应 response=urllib.request.urlopen(url,data) html=response.read().decode('utf-8') ''' print(html) target=json.loads(html) print(target) print(target['translateResult']) print(target['translateResult'][0][0]) print(target['translateResult'][0][0]['tgt']) ''' target=json.loads(html) #获取结果 print('翻译结果:%s'%(target['translateResult'][0][0]['tgt'])) #设置间隔时间 time.sleep(5)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。