python中urlparse模块介绍与使用示例

作者:菜鸡_堃 时间:2021-08-08 10:13:18 

简介

urlparse模块主要是用于解析url中的参数  对url按照一定格式进行 拆分或拼接。urlparse库用于把url解析为各个组件,支持file,ftp,http,https, imap, mailto, mms, news, nntp, prospero, rsync, rtsp, rtspu, sftp, shttp, sip, sips, snews, svn, svn+ssh, telnet等几乎所有的形式。

注意:根据其官网的说明,在Python3.0中,此库已经更名为urllib.parse了。

使用说明

1.urlparse.urlparse

将url分为6个部分,返回一个包含6个字符串项目的元组:协议、位置、路径、参数、查询、片段。


import urlparse
url_change = urlparse.urlparse('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print url_change

输出结果为:


ParseResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', params='', query='opt=1', fragment='')

其中 scheme 是协议  netloc 是域名服务器  path 相对路径  params是参数,query是查询的条件


urlparse.parse_qs(urlparse.urlparse(url).query)

这个是获取urlparse分割后元祖中的某一项  urlparse.urlparse(url).query   获取查询条件

parse_qs 有几种实现

  • urlparse.parse_qs 返回字典

  • urlparse.parse_qsl 返回列表

2. urlparse.urlsplit

和urlparse差不多,将url分为5部分,返回一个包含5个字符串项目的元组:协议、位置、路径、查询、片段。


import urlparse
url_change = urlparse.urlsplit('https://i.cnblogs.com/EditPosts.aspx?opt=1')
print url_change

SplitResult(scheme='https', netloc='i.cnblogs.com', path='/EditPosts.aspx', query='opt=1', fragment='')

其中 scheme 是协议  netloc 是域名服务器  path 相对路径 query是查询的条件

3.urlparse.urljoin

将相对的地址组合成一个url,对于输入没有限制,开头必须是http://,否则将不组合前面。


import urlparse
new_url = urlparse.urljoin('https://baidu.com/ssss/','88888')
print new_url

输出 https://baidu.com/ssss/88888

如果输入错误信息 如  new_url = urlparse.urljoin('122','88888')    并不会将两者合并   输出‘88888'

urlparse获取url后面的参数

如果给定你一个URL,比如: http://url/api?param=2&param2=4 我们需要获取参数名和参数值的话,那可以用到python标准库urlparse


import urlparse
def qs(url):
 query = urlparse.urlparse(url).query
 return dict([(k,v[0]) for k,v in urlparse.parse_qs(query).items()])

print qs('http://url/api?param=2&param2=4') 返回的结果: {'param':'2','param2':'4'}

注意:这个模块的parse_qs方法在2;5的版本是不存在的,只有2.5以上的才有,你需要调用该方法的时候可以先通过dir(urlparse)查看模块urlparse是否有相应的方法。

官方文档地址  http://docs.python.org/library/urlparse.html

来源:http://www.cnblogs.com/xie-kun/p/7858358.html

标签:python,urlparse模块
0
投稿

猜你喜欢

  • pytorch实现好莱坞明星识别的示例代码

    2022-11-28 14:26:47
  • python字典添加值的方法及实例代码分享

    2023-04-22 09:58:13
  • 在python中bool函数的取值方法

    2021-10-06 00:47:37
  • ASP Application 对象用户手册

    2008-10-23 13:59:00
  • vue-element-admin 登陆及目录权限控制的实现

    2024-04-28 09:26:29
  • CSS压缩:技巧与工具

    2009-12-11 18:26:00
  • 封装了一个js图片轮换效果的函数

    2024-06-21 20:21:48
  • 斜角滑动门导航条 DIV+CSS

    2008-07-19 15:45:00
  • 使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子

    2023-08-26 23:12:32
  • Web2.0时代的网页视觉设计

    2008-07-13 14:07:00
  • Python实现复杂对象转JSON的方法示例

    2021-11-14 09:55:47
  • Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作

    2021-11-13 16:52:41
  • Keras搭建孪生神经网络Siamese network比较图片相似性

    2023-01-27 04:16:28
  • 如何利用opencv训练自己的模型实现特定物体的识别

    2022-06-19 02:05:39
  • python集成开发环境配置(pycharm)

    2021-08-28 08:23:10
  • 基于Python实现人脸识别和焦点人物检测功能

    2021-03-09 10:27:45
  • Python自动重新加载模块详解(autoreload module)

    2023-09-19 04:36:12
  • 关于matplotlib及相关cmap参数的取值方式

    2023-06-26 15:19:18
  • Python Pandas创建Dataframe数据框的六种方法汇总

    2023-08-25 07:39:16
  • 透明数据加密(TDE)库的备份和还原

    2024-01-14 04:51:57
  • asp之家 网络编程 m.aspxhome.com