'''
备注:这里是用head把访问主机的访问者User-Agent人为的设定
成浏览器访问。其中head也是一个字典
'''
import urllib.request
#parse解析
import urllib.parse
import json
content=input("请输入需要翻译的内容:")
url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null'
'''
#这是一种方法,还可以用第二种方法。
head={}
head['User-Agent']='Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36'
'''
data={}
data['type']='AUTO'
#data['i']="I love you"
#下面这个进行一般化
data['i']=content
data['doctype']='json'
data['xmlVersion']='1.8'
data['keyfrom']='fanyi.web'
data['ue']='UTF-8'
data['action']='FU_BY_ENTER'
data['typoResult']='ture'
#encode硬编码
data=urllib.parse.urlencode(data).encode('utf-8')
#添加一个head用于隐藏程序访问
#这里有data参数就是post,没有就默认get形式提交
#第一种方法用
#req=urllib.request.Request(url,data,head)
#第二种方法用
req=urllib.request.Request(url,data)
#这里第二种方法
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36')
response=urllib.request.urlopen(req)
html=response.read().decode('utf-8')
#打印出来的是字典格式
#print(html)
target=json.loads(html)
#注意niaho:%s',%(targ里面的逗号是错误的
#print('niaho:%s',%(target['smartResult']['entries'][1]))
print("你查到的结果是: %s" %target['smartResult']['entries'][1])
#以下是运行结果
============== RESTART: C:\Users\Administrator\Desktop\niub.py ==============
请输入需要翻译的内容:linux
你查到的结果是: n. Linux操作系统(一种类似于UNIX的计算机操作系统)
>>> req.headers
{'User-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.71 Safari/537.36'}
>>>
============== RESTART: C:\Users\Administrator\Desktop\niub.py ==============
请输入需要翻译的内容:love
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\niub.py", line 43, in <module>
req=urllib.request.Request(url,data,head)
NameError: name 'head' is not defined
>>>
============== RESTART: C:\Users\Administrator\Desktop\niub.py ==============
请输入需要翻译的内容:你好、
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\niub.py", line 48, in <module>
req=urllib.request.Request(url,data,head)
NameError: name 'head' is not defined
>>>
============== RESTART: C:\Users\Administrator\Desktop\niub.py ==============
请输入需要翻译的内容:loce
Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\niub.py", line 48, in <module>
req=urllib.request.Request(url,data,head)
NameError: name 'head' is not defined
>>>
============== RESTART: C:\Users\Administrator\Desktop\niub.py ==============
请输入需要翻译的内容:loce
你查到的结果是: 周家宇
>>>
python3.0学习四 隐藏访问浏览器
最新推荐文章于 2024-07-18 15:18:00 发布