安装Python3.0+
安装Chrome
This is an example link.
在链接点击右键,选择检查(Ctrl+Shift+I)
选择Network标签,在翻译界面内随便输入内容
可以看到我们拦截到的信息
这是我们浏览器和客户端的内容
Request URL:实现翻译的地址
Request Method:请求方法是POST形式
Status Code:状态灯,200就是正常响应的意思,404就是页面找不到了
Remote Address:服务器IP地址和打开的端口号
Reques Headers:客户端发送请求的Headers,服务端用来判断是否非人类访问
User-Agent:识别是浏览器访问还是代码访问
Apple WebKit:浏览器实现的核心平台
From Data:表单数据
Json:轻量级的数据交换格式
打开IDLE终端输入代码
File菜单栏New 一个 File
import urllib.request
导入URL.parse模块,负责解析功能
import urllib.parse
直接拷贝URL和Form Data:
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {}
data['i'] = 'content'
data['from'] = 'AUTO'
data['to']= 'AUTO'
data['smartresult'] = 'dict'
data['client']= 'fanyideskweb'
data['salt'] = '1523259845567'
data['sign'] = '5e74a770f46956fc4db664cd703c4e20'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action']= 'FY_BY_REALTIME'
data['typoResult']= 'false'
需要用urllib.parese.urlencode()函数对它进行一个编码
编码成URL的形式:
data = urllib.parse.urlencode(data).encode('utf-8')
发出请求,得到响应:
response = urllib.request.urlopen(url,data)
html = response.read().decode('utf-8')
print(html)
运行后会出现新的终端
运行后发现这样的问题
在新的终新输入以下代码
>>>import json
>>>json.loads(html)
>>target = json.loads(html)
>>>type(target)
>>>target['translateResult']
>>>target['translateResult'][0][0]
>>>target['translateResult'][0][0]['tgt']
import urllib.request
import urllib.parse
import json #增加代码处
content = input("请输入需要翻译的内容:")
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data = {}
data['i'] = content
data['from'] = 'AUTO'
data['to']= 'AUTO'
data['smartresult'] = 'dict'
data['client']= 'fanyideskweb'
data['salt'] = '1523259845567'
data['sign'] = '5e74a770f46956fc4db664cd703c4e20'
data['doctype'] = 'json'
data['version'] = '2.1'
data['keyfrom'] = 'fanyi.web'
data['action']= 'FY_BY_REALTIME'
data['typoResult']= 'false'
data = urllib.parse.urlencode(data).encode('utf-8')
response = urllib.request.urlopen(url,data)
html = response.read().decode('utf-8')
#增加代码处:
target = json.loads(html)
print("翻译结果:%s" %(target['translateResult'][0][0]['tgt']))
- 没有找到translate拦截到的界面:有道词典要进入到自动翻译的页面,否则会出现找不到拦截界面的情况。
- 无法找到Form Data表单数据:找到Network的标签,再找到translate拦截界面,拉到底部可查看Form Data表单数据
- 运行时出现"errorCode":50错误:从网页上URL复制的地址内容要删除_o, 例:url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
- Json Decode Error错误:这个错误出现原因是非Json符合引用,参考自身网页正确的Form Data表单数据