python3 urlopen,URLopen
一. 简介
urllib.request.urlopen()函数用于访问目标url。
函数原型如下:urllib.request.urlopern (URL,data=none,[timeout,] *,CAFile=none,CAPath=none,CADefault=false,context=none)
Url:要打开的Url
数据:通过邮寄提交的数据
超时:设置网站的访问超时。
直接用urllib.request模块的urlopen()获取页面。页面的数据格式是bytes类型,需要通过decode()解码,转换成str类型。
二. 函数参数介绍
1.url参数:目标资源在网络中的位置。可以是表示URL的字符串(如http://www . python tab.com/);它也可以是urllib.request对象。详情请跳转。
2.数据参数:数据用于表示发送给服务器的请求中的附加参数信息(如在线翻译、在线回答等。),数据的默认值为None。此时,请求由GET发送;当用户给出数据参数时,它以POST模式发送请求。
3.超时:设置网站的访问超时。
4.cafile,capath,cadefault参数:用于实现可信CA证书的HTTP请求。(基本很少用)
5.上下文参数:实现SSL加密传输。(基本很少用)
三. 返回处理方法详解
Urlopen返回对象提供方法:
Read()、readline()、readlines()、fileno()、close():对HTTPResponse类型的数据进行操作。
Info():返回一个HTTPMessage对象,表示远程服务器返回的头信息。
Getcode():返回Http状态代码。如果是http请求,则200请求成功完成;44未找到URL
Geturl():返回请求的url。
四. 版本区别, 注意事项
Python2和python3以不同的方式导入urlrequest。
Python2是这样的:导入urllib2
在python3中,urllib被分为urlrequest和urlerror。在这里,我们只需要导入urlrequest。从urllib.request导入urlopen
五. 实例
下面的程序实现了urlopen()函数的大部分功能,尤其是数据参数。自定义数据、数据格式转换、数据编码encode()和解码decode()。
#编码=utf-8
#Python3.x
使用有道翻译进行在线翻译
importurllib.request
importurllib.parse
importjson
deftraslate(单词):
#目标URL
targetURL= http://fanyi . Youdao.com/translate? smart result=dict smart result=rulesmartrend=ugcsessionFrom=null
#用户定义的表单。单词是指用户想要翻译的内容。这里用的是Dict类型,或者可以用tuple list(已经试过了)。
数据={}
数据[类型]=自动
数据[I]=单词
数据[doctype]=json
数据[xmlVersion]=1.8
data[keyfrom]=fanyi.web
数据[ue]=UTF-8
data[ action ]= FY _ BY _ click button
data[typoResult]=true
#将自定义数据转换为标准格式
data=urllib . parse . urlencode(data)。编码(“utf-8”)
#发送用户请求
html=URL lib . request . urlopen(targetURL,data)
#阅读并解码内容
rst=html.read()。解码(“utf-8”)
rst_dict=json.loads(rst)
return rst _ dict[ translate result ][0][0][ TGT ]
if__name__==__main__:
打印(“输入字母Q表示退出”)
whileTrue:
Words=input(请输入要查询的单词或句子3360 \ n )
ifwords==q:
破裂
结果=翻译(单词)
打印(转换结果为:%s%result )
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。