python3 urlopen,URLopen

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: