文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python的urllib模块怎么用

2023-06-30 15:35

关注

这篇文章主要介绍了Python的urllib模块怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Python的urllib模块怎么用文章都会有所收获,下面我们一起来看看吧。

一、Python urllib 模块是什么

urllib 模块是 Python 标准库,其价值在于抓取网络上的 URL 资源,入门爬虫时必学的一个模块。

不过更多的爬虫工程师上手学习的模块已经更换为 requests 了。

在 Python3 中 urllib 模块包括如下内容。

二、使用方法

上手案例

打开一个测试站点,然后返回服务器响应内容。

from urllib.request import urlopenwith urlopen('https://www.example.net') as html:    page = html.read()print(page)

上述代码用到了 urllib.requests 模块,其内部定义了打开 URL 的函数,授权验证的方法,重定向,cookie 操作等方法。

代码中用到的 urlopen() 函数,就是打开一个 URL,该函数的语法格式如下所示:

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

参数描述如下所示:

调用该对象的 read() 方法,可以读取到整个网页数据。

其余的函数与文件读取类似,分别是 readline()readlines()

还可以调用对象的 getcode() 方法,获取网页状态码。

print(html.getcode()) # 返回 200

urlopen() 返回对象的更多方法

使用 urlopen() 可以得到一个 HTTPResposne 类型的对象,它包括上文提及的 read() 方法,getcode() 方法,除此之外,还有如下内容可以使用。

urllib.Request() 类

URL 请求抽象类,使用它可以扩展更多的请求配置,其构造方法如下所示:

def __init__(self, url, data=None, headers={},                 origin_req_host=None, unverifiable=False,                 method=None)

其参数说明如下所示:

测试代码如下所示:

from urllib import request, parseurl = 'http://httpbin.org/post'headers = {    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) 你的UA'}dict = {    'name': 'xiangpica'}# 转换数据类型data = bytes(parse.urlencode(dict), encoding='utf8')# 实例化对象req = request.Request(url=url, data=data, headers=headers, method='POST')# 添加请求头req.add_header('HOST', 'httpbin.org')# 发送数据response = request.urlopen(req)print(response.read().decode('utf-8'))

urllib.parse

该模块主要用于解析 URL,函数原型如下所示:

urllib.parse.urlparse(urlstring, scheme='', allow_fragments=True)

参数说明如下:

标准的 URL 格式如下:

scheme://netloc/path;params?query#fragment

说明如下所示:

from urllib.parse import urlparseresult = urlparse('http://www.example.com/index.html;info?id=10086#comment')print(type(result), result)print(result.scheme, result[0])print(result.netloc, result[1])print(result.path, result[2])print(result.params, result[3])print(result.query, result[4])print(result.fragment, result[5])

运行结果如下所示:

<class 'urllib.parse.ParseResult'> ParseResult(scheme='http', netloc='www.example.com', path='/index.html', params='info', query='id=10086', fragment='comment')
http http
www.example.com www.example.com
/index.html /index.html
info info
id=10086 id=10086
comment comment

urlparse() 返回结果是一个 ParseResult 类型的对象。

其余内容

三、提高场景

error 模块

在 urllib 中,error 模块定义异常,其包含如下类:

关于“Python的urllib模块怎么用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Python的urllib模块怎么用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯