Python3中urlopen()的用法解读

 更新时间:2023年03月14日 09:10:59   作者:网络毒刘  
这篇文章主要介绍了Python3中urlopen()的用法解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

一、简介

urllib.request.urlopen()函数用于实现对目标url的访问。

函数原型如下:

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None) 

  • url:  需要打开的网址
  • data:Post提交的数据
  • timeout:设置网站的访问超时时间

直接用urllib.request模块的urlopen()获取页面,page的数据格式为bytes类型,需要decode()解码,转换成str类型。

二、函数参数介绍

  • url 参数:目标资源在网路中的位置。可以是一个表示URL的字符串;也可以是一个urllib.request对象,详细介绍请跳转
  • data参数:data用来指明发往服务器请求中的额外的参数信息(如:在线翻译,在线答题等提交的内容),data默认是None,此时以GET方式发送请求;当用户给出data参数的时候,改为POST方式发送请求。
  • timeout:设置网站的访问超时时间
  • cafilecapathcadefault 参数:用于实现可信任的CA证书的HTTP请求。(基本上很少用)
  • context参数:实现SSL加密传输。(基本上很少用)

三、返回处理方法详解

urlopen返回对象提供方法:

read() , readline() ,readlines() , fileno() , close() :对HTTPResponse类型数据进行操作

  • info():返回HTTPMessage对象,表示远程服务器返回的头信息
  • getcode():返回Http状态码。如果是http请求,200请求成功完成;404网址未找到
  • geturl():返回请求的url

四、版本区别, 注意事项

python2和python3在导入urlrequest的方式都不一样。 

python2是这样:import urllib2 

而python3里面把urllib分开了,分成了urlrequest和urlerror,在这里我们只需导入urlrequest即可。from urllib.request import urlopen

五、实例

下面这个程序,实现了urlopen()函数的大部分功能,特别是data参数。

data自定义,data格式转换,数据的编码encode()和解码decode()。

#coding=utf-8
#Python3.x
'''
利用有道翻译进行在线翻译
'''
import urllib.request
import urllib.parse
import json
def traslate(words):
    #目标URL
    targetURL = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
    #用户自定义表单,words表示的是用户要翻译的内容。这里使用的是dict类型,也可以使用元组列表(已经试过的)。
    data = {}
    data['type'] = 'AUTO'
    data['i'] = words
    data['doctype'] = 'json'
    data['xmlVersion'] = '1.8'
    data['keyfrom'] = 'fanyi.web'
    data['ue'] = 'UTF-8'
    data['action'] = 'FY_BY_CLICKBUTTON'
    data['typoResult'] = 'true'
    #将自定义data转换成标准格式
    data = urllib.parse.urlencode(data).encode('utf-8')
    #发送用户请求
    html = urllib.request.urlopen(targetURL, data)
    #读取并解码内容
    rst = html.read().decode("utf-8")
    rst_dict = json.loads(rst)
    return rst_dict['translateResult'][0][0]['tgt']
if __name__ == "__main__":
    print("输入字母q表示退出")
    while True:
        words = input("请输入要查询的单词或句子:\n")
        if words == 'q':
            break
        result = traslate(words)
        print("翻译结果是:%s"%result)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 如何使用python统计字符在文件中出现的次数

    如何使用python统计字符在文件中出现的次数

    在开发过程中很多时候我们有统计单个字符或者字符串在另一个字符串中出现次数的需求,下面这篇文章主要给大家介绍了关于如何使用python统计字符在文件中出现的次数的相关资料,需要的朋友可以参考下
    2023-03-03
  • python中的zip模块

    python中的zip模块

    这篇文章主要介绍了zip文件格式是通用的文档压缩标准,在ziplib模块中,使用ZipFile类来操作zip文件,感兴趣的朋友参考如下
    2021-08-08
  • 用Python绘制一个仿黑洞图像

    用Python绘制一个仿黑洞图像

    黑洞图像大家都知道,毕竟前几年刚发布的时候曾火遍全网,甚至都做成表情包了。本文就来用Python绘制一个仿黑洞图像,希望大家能够喜欢
    2023-02-02
  • Python自然语言处理库之NLTK库初级教程

    Python自然语言处理库之NLTK库初级教程

    NLTK(Natural Language Toolkit)是一个Python库,用于实现自然语言处理(NLP)的许多任务,NLTK包括一些有用的工具和资源,如文本语料库、词性标注器、语法分析器等,在这篇初级教程中,我们将了解NLTK的基础功能,需要的朋友可以参考下
    2023-08-08
  • Python中使用haystack实现django全文检索搜索引擎功能

    Python中使用haystack实现django全文检索搜索引擎功能

    django是python语言的一个web框架,功能强大。配合一些插件可为web网站很方便地添加搜索功能。下面通过本文给大家分享Python中使用haystack实现django全文检索搜索引擎功能,感兴趣的朋友一起看看吧
    2017-08-08
  • Python类绑定方法及非绑定方法实例解析

    Python类绑定方法及非绑定方法实例解析

    这篇文章主要介绍了Python类绑定方法及非绑定方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • python中argparse模块基础及使用步骤

    python中argparse模块基础及使用步骤

    argsparse是python的命令行解析的标准模块,内置于python,不需要安装。这个库可以让我们直接在命令行中就可以向程序中传入参数并让程序运行,接下来通过本文给大家介绍python argparse模块的相关知识,感兴趣的朋友一起看看吧
    2022-06-06
  • Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例

    Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例

    这篇文章主要介绍了Python实现的插入排序,冒泡排序,快速排序,选择排序算法,结合实例形式总结分析了Python插入排序,冒泡排序,快速排序,选择排序等算法的实现与使用技巧,需要的朋友可以参考下
    2019-05-05
  • 利用Python轻松解析XML文件

    利用Python轻松解析XML文件

    XML文件在数据处理和配置存储中非常常见,但手动解析它们可能会让人头疼,Python提供了多种简单高效的方法来处理XML文件,下面小编就来和大家详细介绍一下吧
    2025-04-04
  • 使用Python实现微信拍一拍功能的思路代码

    使用Python实现微信拍一拍功能的思路代码

    这篇文章主要介绍了使用Python实现微信“拍一拍”的思路代码,,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论