首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用 Python的urlliib.parse 库解析 URL

Python 中的 urllib.parse 模块提供了很多解析和组建 URL 的函数。

-- Darksun

致谢

转载自 | https://github.com/lujun9972/lujun9972.github.com/blob/source/%E7%BC%96%E7%A8%8B%E4%B9%8B%E6%97%85/%E4%BD%BF%E7%94%A8urlliib.parse%E5%BA%93%E8%A7%A3%E6%9E%90url.org

作者 | Darksun

Python 中的 模块提供了很多解析和组建 URL 的函数。

解析url

函数可以将 URL 解析成 对象。对象中包含了六个元素,分别为:

◈ 协议(scheme)

◈ 域名(netloc)

◈ 路径(path)

◈ 路径参数(params)

◈ 查询参数(query)

◈ 片段(fragment)

结果为:

继承于 ,因此可以同时通过索引和命名属性来获取 URL 中各部分的值。

为了方便起见, 还提供了 、 、 、 对 进一步进行拆分。

结果为:

除了 之外,还有一个类似的 函数也能对 URL 进行拆分,所不同的是, 并不会把 从 中分离出来。

当 URL 中路径部分包含多个参数时,使用 解析是有问题的:

结果为:

这时可以使用 来解析:

结果为:

若只是要将 URL 后的 标识拆分出来,可以使用 函数:

结果为:

组建URL

对象和 对象都有一个 方法,可以返回一个完整的 URL 字符串。

结果为:

但是 只在 和 对象中有,若想将一个普通的元组组成 URL,则需要使用 函数:

结果为:

相对路径转换绝对路径

除此之外, 还提供了一个 函数,来将相对路径转换成绝对路径的 URL。

结果为:

查询参数的构造和解析

使用 函数可以将一个 dict 转换成合法的查询参数:

结果为:

可以看到特殊字符也被正确地转义了。

相对的,可以使用 来将查询参数解析成 dict。

结果为:

如果只是希望对特殊字符进行转义,那么可以使用 或 函数,其中 比 更激进一些,会把 、 一类的符号也给转义了。

结果为:

可以看到 中应该是调用 来进行转义的。

逆向操作则使用 或 函数:

结果为:

你会发现 函数居然能正确地将 的结果转换回来。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180223B0K7PM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券