博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python3中的urllib.parse的常用方法
阅读量:6429 次
发布时间:2019-06-23

本文共 1907 字,大约阅读时间需要 6 分钟。

将URL按一定的格式进行拆分

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

参照官方地址:https://docs.python.org/3/library/urllib.parse.html

import urllib.parse#urlparse将url分为6个部分url ="https://i.cnblogs.com/EditPosts.aspx?opt=1"url1 = "cheme://netloc/path;parameters?query#fragment"url_change = urllib.parse.urlparse(url)print(url_change)

输出结果为:

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

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

 

  • 使用  urllib.parse.urlsplit 将url分为5个部分,返回一个包含字符串项目的元组:协议、位置、路径、查询、片段
1 import urllib.parse2 #urlsplit将url分为5个部分3 url ="https://i.cnblogs.com/EditPosts.aspx?opt=1"4 url_change = urllib.parse.urlsplit(url)5 print(url_change)

输出结果为:

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

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

对URL按照一定的规格进行拼接

  • 使用 urllib.parse.urljoin将相对的一个地址组合成一个url,对于输入没有限制,开头必须是http://或者https://,否则将不组合前面的部分。

 

1 import urllib.parse2 host = "https://127.0.0.1"3 #host ="127.0.0.1"4 port = "8888"5 new_url = urllib.parse.urljoin(host,port)6 print(new_url)

输出结果为:

  https://127.0.0.1/8888

如果  host ="127.0.0.1",则输出的只是:  8888

 

parse_qs 有几种实现

  • urllib.parse.parse_qs 返回字典
  • urllib.parse.parse_qsl 返回列表
import urllib.parse#urlparse将url分为6个部分url ="https://i.cnblogs.com/EditPosts.aspx?opt=1"url_change = urllib.parse.urlparse(url) # 将url拆分为6个部分query = url_change.query #取出拆分后6个部分中的查询模块querylst_query = urllib.parse.parse_qsl(query)  #使用parse_qsl返回列表dict1 =dict(lst_query)  #将返回的列表转换为字典dict_query =urllib.parse.parse_qs(query)  #使用parse_qs返回字典print("使用parse_qsl返回列表  :",lst_query)print("将返回的列表转换为字典 :",dict1)print("使用parse_qs返回字典   : ",dict_query)# data = "test=test&test2=test2&test2=test3"# print(urllib.parse.parse_qsl(data)) #返回列表# print(urllib.parse.parse_qs(data))  #返回字典

 

转载于:https://www.cnblogs.com/fanjc/p/9910292.html

你可能感兴趣的文章
再也不用担心this指向的问题了
查看>>
使用putty远程连接linux
查看>>
【comparator, comparable】小总结
查看>>
Node 版本管理
查看>>
34、重分布配置实验之分发列表distribute-list
查看>>
命令模式-对象行为型
查看>>
VS2017配置、提高生产力、代码辨识度 (工欲善其事必先利其器)新手必备!
查看>>
[Phoenix] 七、如何使用自增ID
查看>>
路由基本配置(上)
查看>>
fpm打包zabbix-agent
查看>>
pythopn List(列表)
查看>>
学习笔记 十五: mariadb
查看>>
学习笔记 124: 预备知识总结
查看>>
windows server之AD(1)
查看>>
如何升级PowerShell
查看>>
oracle kill所有plsql developer进程
查看>>
LAMP架构(apache用户认证,域名重定向,apache访问日志)
查看>>
struts2.0的json操作
查看>>
SQL注入神器——sqlmap
查看>>
Unity导航 (寻路系统Nav Mesh Agent)
查看>>