yarl,一个超强的 Python 库

Python-yarl这个模块提供了用于url解析和更改的便捷的URL类 yarl 这个模块提供了用于url解析和更改的便捷的URL类 立即下载

你好,我是坚持分享干货的 EarlGrey,翻译出版过《Python编程无师自通》、《Python并行计算手册》等技术书籍。

如果我的分享对你有帮助,请关注我,一起向上进击。

在 Python 中,我们经常需要处理 URL,例如解析 URL 的各个部分,修改 URL 的参数,构建 URL 的字符串,操作 URL 的对象等。

但是,Python 自带的 URL 库,例如 urllib, urlparse, urljoin 等,虽然功能强大,但是使用起来并不方便,有时候还会出现一些问题,例如 URL 的编码和解码,URL 的拼接和更新,URL 的兼容性和可读性等。😥

幸运的是,有一个第三方库可以帮助我们解决这个问题,那就是 yarl。👏

yarl 是什么?

yarl 是一个用于处理 URL 的 Python 库,它可以让你方便地解析,修改,构建,和操作 URL。它有以下的特点和优势:

  • 它可以自动对 URL 进行编码和解码,保证 URL 的规范和可读性。

  • 它可以访问和修改 URL 的各个部分,例如 scheme, host, path, query, fragment 等,提供了丰富的属性和方法。

  • 它可以使用简洁的运算符来拼接和更新 URL,例如 /, %, +, - 等,提供了灵活的语法。

目前,yarl 在 Github 的星标数超过 1000,每天在 PyPI 上的下载次数为 2-3 百万之间,最近 30 天的下载量接近 1 亿次。

6b9f64ca2bcb6dabcd0106bcd5dc050c.png

如何安装 yarl?

安装 yarl 非常简单,只需要使用 pip 命令即可:

pip install yarl

yarl 只支持 Python 3,不支持 Python 2。如果你想要在 Python 2 中使用类似的功能,你可以尝试使用 furl 这个库,但是它的性能和兼容性可能不如 yarl。

如何使用 yarl?

使用 yarl 也非常简单,只需要导入 yarl 库中的 URL 类,然后使用它的构造函数,属性,方法,和运算符即可。下面我们来看一些具体的例子:

解析 URL

我们可以使用 URL 类的构造函数来创建一个 URL 对象,然后使用它的属性来访问和修改 URL 的各个部分,例如 scheme, host, path, query, fragment 等。例如:

from yarl import URL

url = URL("https://www.python.org/~guido?arg=1#frag")
print(url) 
# https://www.python.org/~guido?arg=1#frag
print(url.scheme) 
# https
print(url.host) 
# www.python.org
print(url.path) 
# /~guido
print(url.query_string) 
# arg=1
print(url.query) 
# <MultiDictProxy ('arg': '1')>
print(url.fragment) 
# frag
print(url.parts) 
# ('/', '~guido')

我们可以看到,URL 对象会自动对 URL 进行规范化,保证 URL 的正确性和一致性。如果我们传入一个不合法的 URL,例如缺少 scheme 或 host,或者包含非法的字符,URL 对象会抛出一个 ValueError 异常。例如:

from yarl import URL

url = URL("www.python.org") 
# ValueError: No schema suffix '://' found in 'www.python.org'
url = URL("https://www.python.org/你好") 
# URL ('https://www.python.org/%E4%BD%A0%E5%A5%BD')

我们可以看到,URL 对象会自动对 URL 中的中文进行编码,使用百分号编码(percent-encoding)的方式,将中文转换为 ASCII 字符。

构建 URL

我们可以使用 URL 类的构造函数来创建一个空的 URL 对象,然后使用它的方法和运算符来构建 URL 的各个部分,例如 with_scheme, with_host, with_path, with_query, with_fragment 等。例如:

from yarl import URL

url = URL('http://example.com')
print(url) # http://example.com
url = url.with_scheme("https")
print(url) # https://example.com
url = url.with_host("www.python.org")
print(url) # URL ('https://www.python.org')
url = url / "foo" / "bar"
print(url) # URL ('https://www.python.org/foo/bar')
url = url % {"arg": "1"}
print(url) # URL ('https://www.python.org/foo/bar?arg=1')
url = url.with_fragment("frag")
print(url) # URL ('https://www.python.org/foo/bar?arg=1#frag')

总结

本文介绍了 yarl 这个用于处理 URL 的 Python 库,它可以让你方便地解析,修改,构建,和操作 URL。你可以自动对 URL 进行编码和解码,访问和修改 URL 的各个部分,使用简洁的运算符来拼接和更新 URL,支持不同的 URL 类型,与其他的 Python 库和框架兼容。

感谢你阅读我的文章,如果你喜欢我的文章,请关注我的账号,并积极评论,将文章分享给朋友。😊

- EOF -

文章已经看到这了,别忘了在右下角点个“赞”和“在看”鼓励哦~

推荐阅读  点击标题可跳转

1、Python 项目工程化最佳实践

2、Python 可以比 C 还要快!

3、streamlit,一个超强的 Python 库

4、豆瓣8.9分的C++经典之作,免费送!

5、Python 3.12 版本有什么变化?

回复下方「关键词」,获取优质资源

回复关键词「 pybook03」,领取进击的Grey与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,领取进击的Grey整理的 10 本 Python 入门书的电子版

👇关注我的公众号👇

告诉你更多细节干货

e27010cddac60033d3d2b47d5a8a9f78.jpeg

欢迎围观我的朋友圈

👆每天更新所想所悟

yarl 这个模块提供了用于url解析和更改的便捷的URL类-python yarl 这个模块提供了用于url解析和更改的便捷的URL类 yarl 介绍 Url 由 str 构建:>>> from yarl import URL >>> url = URL('https://www.python.org/~guido?arg=1#frag') >>> url URL(' https://www.python.org/~guido?arg=1#frag') 所有 url 部分:scheme、user、password、host、port、path、query 和 fragment 都可以通过属性访问:>>> url.scheme 'https' >>> url.host 'www.python.org' >>> url.path '/~guido' >>> url.query_string 'arg=1' >>> url.query >>> url.fragment 'frag' 所有 url 操作都 立即下载

相关推荐

Python库 | yarl-1.7.0a0-cp38-cp38-macosx_10_9_x86_64.whl

资源分类:Python库 所属语言:Python 资源全名:yarl-1.7.0a0-cp38-cp38-macosx_10_9_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.youkuaiyun.com/article/details/101784059

yarl,一个强大的 Python 库!

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。Yarl 提供了方便的方法来编码和解码 URL 的各个部分。

m0_59236602的博客 1078

Python库 | yarl-1.7.0a3-cp37-cp37m-macosx_10_9_x86_64.whl

资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:yarl-1.7.0a3-cp37-cp37m-macosx_10_9_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.youkuaiyun.com/article/details/101784059

Python操作url库——yarl

yarl 便于 URL 解析和修改

XerCis的博客 2080

Python库 | yarl-1.2.5-cp36-cp36m-manylinux1_x86_64.whl

资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:yarl-1.2.5-cp36-cp36m-manylinux1_x86_64.whl 资源来源:官方 安装方法:https://lanzao.blog.youkuaiyun.com/article/details/101784059

iOS安全攻防:从DarkSword漏洞利用链剖析到纵深防御实践

在移动安全领域,内存破坏漏洞(如堆溢出、释放后使用)是攻击者突破系统防线、实现远程代码执行和权限提升的核心技术原理。这些漏洞利用技术通过精心构造的攻击链,能够绕过沙箱、地址空间布局随机化等安全机制,最终威胁设备内核安全,其技术价值在于揭示了系统安全架构的潜在薄弱环节。在iOS应用开发与系统防护中,理解此类攻击链对于构建有效的纵深防御体系至关重要。应用场景涵盖从安全编码、网络通信加固到运行时应用程序自保护等多个层面。本文以DarkSword工具包为例,深入拆解其利用链,并分享如何通过内存安全实践、代码签名强化

weixin_30357231的博客 481

python-第三方库-[yarl、yaml、yapf]

URL介绍:统一资源定位符,它是用来表示互联网上的某个资源地址,互联网上的每个文件都有一个唯一的 URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它;yarl:yarl 库是一个强大的工具,用于处理 URL(统一资源定位符);yarl作用:提供了简单且灵活的 API,使得 URL 的解析、构建和操作变得简单;Yaml:Yaml 是一种人类可读的数据序列化语言,通常用于存储项目中的配置文件;例如 docker 和 k8s 都使用 Yaml 文件定义部署信息;

weixin_42914706的博客 1528

【UE5】虚幻引擎Gameplay框架

游戏实例(UGameInstance)会在引擎启动时实例化,并保持活跃直至引擎关闭。这是一种管理器类,在游戏中不存在实体,但会追踪数据和运行代码。在联网多人游戏中,游戏实例不会被复制,而是独立存在于服务器以及所有互联的客户端上。所有你希望在关卡加载间保持的内容都应存于游戏实例中。例如,游戏实例是管理游戏保存系统的到地方。游戏实例还可以充当任意数量的 游戏实例子系统 的管理器,这些子系统由游戏实例创建和销毁,并且与游戏实例本身具有相同的生命周期。在线子系统就属于这类子系统。

一个写程序的 1795

yarl,一个神奇的 Python 库!

yarl 库专门针对 URL 的解析、构建及其操作提供强大的工具支持。

DEVELOPERAA的博客 842

半导体功率器件IGBT工艺全流程

本文概述了功率器件IGBT(绝缘栅双极型晶体管)的关键制造流程。主要工艺包括:基板制备、离子注入(B+/P+/P+FS层)、绝缘膜形成与加工(CVD沉积及刻蚀)、沟槽刻蚀、电极形成(Emitter和Collector)等步骤。通过离子注入、化学气相沉积和物理气相沉积等半导体工艺,依次完成器件各功能层的构建,最终形成具备高功率特性的IGBT器件。该流程体现了功率半导体制造中典型的掺杂、薄膜沉积和图形化工艺技术。

750

2026最新贝壳二手房爬虫实战:突破极验5.0滑块验证码,完整房源数据采集方案

本文详细介绍了2026年贝壳找房爬虫技术方案,重点突破其极验5.0滑块验证码等反爬机制。文章首先解析了贝壳六大核心反爬模块,包括AI驱动的验证码、设备指纹绑定和TLS指纹识别等。针对最难破解的滑块验证码,提出了基于YOLOv11深度学习模型的缺口检测方案,准确率达99.5%,并结合人类行为轨迹模拟实现98%以上的成功率。最后设计了分布式爬虫架构,包含任务调度、代理池、验证码服务和数据清洗等模块,为大规模采集贝壳真实房源数据提供了完整解决方案。该方案在复杂反爬环境下仍保持高效稳定,具有重要的商业和研究价值。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2054

python模块yarl,强大的url处理工具

在Python开发中,处理URL往往是一项繁琐的任务。为了简化这一过程,许多开发者选择使用 yarl 库。与Python自带的 urllib 相比,yarl 提供了更加简洁直观的接口和更强大的功能,能够轻松应对复杂的URL操作需求。无论是解析、构建还是修改URL,yarl 都能让开发者以更高效的方式完成任务。

老衲爱洗头的博客 1127

智能车图像处理1-基础图像规格

从厂家摄像头的库函数中,我们可以直接得到完整图像的灰度数组,经过二值化之后(算力允许,可以考虑大津法),就是我们要处理的0-1二值图像了。本系列所有的文章中,我们的图像规格如下。

taiyuezyh的博客 4336

【Python】yarl,一个强大的 Python 库!

大家好,今天为大家分享一个强大的 Python 库 - yarl。Github地址:https://github.com/aio-libs/yarlPython 中的 yarl 库是一个强大的工具,用于处理 URL(统一资源定位符)。它提供了简单且灵活的 API,使得 URL 的解析、构建和操作变得轻而易举。本文将深入介绍 yarl 库的功能和用法,并提供丰富的示例代码,帮助更好地理解和应用该库。...

fengdu78的博客 317

Python量化交易:主流回测框架Backtrader入门详解

Python量化交易框架Backtrader入门指南 Backtrader是一个功能强大的Python量化回测框架,可以帮助交易者专注于策略逻辑而非基础设施。本文介绍了Backtrader的核心架构和使用方法: 框架优势:自动处理订单执行、手续费、滑点、仓位管理等复杂问题,采用事件驱动模式接近真实交易场景。 核心组件: Cerebro:控制中心 Strategy:交易策略 Data Feed:数据输入 Broker:模拟经纪商 Indicators:技术指标 使用流程: 安装:pip install bac

Science prince的博客 935

YOLOv8独家原创改进:原创自研 | 自研独家创新DSAM注意力 ,基于BiLevelRoutingAttention注意力升级

提出新颖的注意力DSAM(Deformable Bi-level SpatialAttention Module),创新度极佳,适合科研创新,效果秒杀CBAM,Channel Attention+Spartial Attention升级为新颖的Deformable Bi-level Attention+Spartial Attention

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1512

yarl,一个神奇的 Python 库!从入门到精通

yarl解析 URL:获取协议、主机、路径、查询参数等。修改 URL:轻松修改 query 参数、scheme、fragment 等。拼接 URL:智能处理,告别joinstrip的烦恼。对比与哈希:URL 可以直接当 key,方便存储和查询。判断 URL 类型:识别绝对与相对 URL,避免低级错误。总之,如果你经常和 URL 打交道,yarl绝对是你的好帮手!🎉写代码嘛,优雅一点总是好的。以后再碰到 URL 相关的问题,别再splitreplacejoin地瞎折腾了,直接上yarl。

奔跑的蜗牛 717

一文搞懂多速率信号处理中信号插值的本质:从插 0、插原值到线性插值!

信号插值在数字信号处理中经常被使用,但“插值”背后究竟发生了什么,却常被忽略。插0、插原值、线性插值看似只是不同的实现方式,实则对应着完全不同的频域效应与滤波特性。本文将结合公式与MATLAB仿真,深入剖析插0、插原值与线性插值三种典型策略的本质区别。

m0_66360845的博客 918

推荐开源库:yarl——强大的URL处理库

**yarl** 是一个为Python 3设计的高级URL处理模块,提供了易用的URL类,方便进行URL解析和修改。它的核心特点是不可变性,确保在进行URL操作时,原始URL始终保持不变,每次操作都会返回一个新的URL对象。 ## 项目技术分析 yarl的设计基于字符串构造,可以轻松创建和操作URL: ```pycon >>> from yarl import URL >>> url = U...

gitblog_00020的博客 503

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

YARL完全指南:Python中最强大的URL解析与构建库详解

YARL(Yet another URL library)是Python生态中一款功能强大的URL处理库,专为简化URL解析、构建和修改操作而设计。无论是处理复杂的查询参数、管理URL路径,还是处理特殊字符编码,YARL都能提供直观且高效的解决方案,帮助开发者轻松应对各类URL相关任务。 ## 🌟 为什么选择YARL? 在Python中处理URL时,开发者常常面临解析复杂参数、处理特殊字符编

gitblog_00907的博客 812

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

深入解析yarl:Python中的高效URL处理库

yarl是一个专为Python 3设计的URL处理库,它提供了`URL`类来简化URL的解析和操作。在Web开发和网络编程中,URL处理是一个基础但至关重要的环节,yarl通过其简洁而强大的API,让URL操作变得异常简单。 ## 核心特性 ### 1. 直观的URL解析 yarl可以轻松解析URL字符串,并将其拆分为各个组成部分: ```python from yarl import U...

gitblog_00913的博客 520

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

yarn的安装及使用教程[通俗易懂]

yarn的安装及使用教程。 Yarn 是一款 JavaScript 的包管理工具(npm 的代替方案),是 Facebook, Google, Exponent 和 Tilde 开发的一款新的 JavaScript 包管理工具。在 Yarn 的官网有着一句话:Safe, stable, reproducible projects。正如 Yarn 官网的介绍,Yarn 的具有速度快 、安全 、可靠 的优点,在功能上相比于 npm 优化了许多功能等,例如网络性能优化,安装依赖的方式相同等功能。

qq_63055262的博客 1万+

aiohttp(yarl) 对 url 部分字符自动 urldecode

最新碰到一个用 aiohttp 访问不出内容,但是用 requests 能访问的情况,url 是事先进行了 urlencode 的, 下面的 url 随便找了个站点代替,但是把重点的参数提了出来 %40 对应的是 @ %3a 对应的是 : https://www.xxx.com?xxx%40yyy%3azzz 这个时候 requests 打开是有内容的,但是 aiohttp 打开是空...

zpoint's blog 2316

使用pip安装aiohttp出现问题,和yarl和multidict有关

提问帖 #使用pip安装aiohttp

亦余的博客 4757
上一篇: Python 制作进度条,原来有这么多方法!
下一篇: Atom 作者推出 Zed 挑战 VS Code,欲打造最好的代码编辑器
codingpy
博客等级 码龄11年 1870粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值