将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.parse 2 #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.parse 2 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个部分中的查询模块query lst_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)) #返回字典
分类:
requests
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 为DeepSeek添加本地知识库
· 精选4款基于.NET开源、功能强大的通讯调试工具
· DeepSeek智能编程
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~