对url编解码总结

需要用到urllib库中的parse模块

import urllib.parse
# Python3 url编码
print(urllib.parse.quote("天天"))
# Python3 url解码
print(urllib.parse.unquote("%E5%A4%E5%A4%"))

urlparse()

# urllib.parse.urlparse(urlstring,scheme='',allow_fragments=True)
# urlstring : 这个是必填项,即待解析的URL
result = urlparse('http://www.baidu.com/index.html;user?id=5#comment')
print(type(result),result)  # scheme : 它是默认的协议,只有在URL中不包含scheme信息时生效
result = urlparse('www.baidu.com/index.html;user?id=5#comment',scheme='https')
print(result)  # allow_fragments : 即是否忽略fragment 设置成False就会忽略,它会被解析为path,parameters或者query的一部分,而fragment部分为空
result = urlparse('http://www.baidu.com/index.html;user?id=5#comment',allow_fragments=False)
print(result)  # 返回的结果其实是一个元组,我们可以通过索引来获取,也可以用属性名来获取
# ParseResult的属性 scheme(:// 协议),netloc(/ 域名),path(访问路径),params(; 参数),query(查询条件),fragment(# 锚点)
result = urlparse('http://www.baidu.com/index.html;user?id=5#comment',allow_fragments=False)
print(result.scheme,result[0],result.netloc,result[1],sep='\n') 

urlunparse()

# urlunparse() 长度必须为6个参数,否则会抛出参数数量不足或者过多的问题
data = ['http','www.baidu.com','index.html','user','a=6','comment']
print(urlunparse(data)) 

urlsplit()

# urlsplit() 和urlparse()方法很相似,不再解析params 参数
result = urlsplit('http://www.baidu.com/index.html;user?id=5#comment')
print(result)
# 返回的结果其实也是一个元组,我们可以通过索引来获取,也可以用属性名来获取
# SplitResult的属性 scheme(:// 协议),netloc(/ 域名),path(访问路径),query(查询条件),fragment(# 锚点)
result = urlparse('http://www.baidu.com/index.html;user?id=5#comment',allow_fragments=False)
print(result.scheme,result[0])  

urlunsplit()

# urlunsplit() 和urlunparse()方法很相似,只不过长度变成5个参数
data = ['http','www.baidu.com','index.html','a=6','comment']
print(urlunsplit(data)) 

urljoin()

# urljoin() 也是合并链接的一种方式,相比之前俩种方法,没有之前特定的指定参数对象的长度
# urljoin()方法提供俩个参数,base_url(基础链接)作为第一个参数,讲新的链接作为第二个参数,该方法会分析base_url的scheme,netloc和path
# 这三个内容并对新链接确实的部分进行补充,最后返回结果
print(urljoin('http://www.baidu.com','https://cuiqingcai.com/FAQ.html'))
print(urljoin('http://www.baidu.com/about.html','https://cuiqingcai.com/FAQ.html'))
print(urljoin('http://www.baidu.com','FAQ.html'))
print(urljoin('http://www.baidu.com/about.html','https://cuiqingcai.com/FAQ.html?question=2'))
print(urljoin('http://www.baidu.com?wd=abc','https://cuiqingcai.com/index.php'))
print(urljoin('http://www.baidu.com','?category=2#comment'))  print(urljoin('www.baidu.com','?category=2#comment'))  print(urljoin('www.baidu.com#comment','?category=2'))  

urlencode()

# urlencode() 序列化字典类型转换为请求类型
params = {  'name' : 'germey',  'age' : 22
}
base_url = 'http://www.baidu.com?'
url = base_url + urlencode(params)
print(url)  

parse_qs()

# parse_qs() 反序列化将请求参数转回字典参数
from urllib.parse import parse_qs  query = 'name=germey&age=22'
params = parse_qs(query)
print(params)  

parse_qs1()

# parse_qs1() 它用于把参数转化为元组组成的列表
from urllib.parse import parse_qsl  query = 'name=germey&age=22'
params = parse_qsl(query)
print(params) 

quote()

# quote() 该方法可以将内容转化为URL编码的格式,URL中带有中文参数时,又是可能会导致乱码的问题,用这个方法可以将中文字符转化为URL编码
from urllib.parse import quote  keyword = '壁纸'
url = 'http://www.baidu.coms?wd='+quote(keyword)
print(url)  

unquote()

# unquote() 它对应上面的方法, 可以进行URL解码
from urllib.parse import unquote  url = 'http://www.baidu.coms?wd=%E5%A3%81%E7%BA%B8'
print(unquote(url))

【urllib】url编码问题简述相关推荐

  1. URL编码与解码(使用 Python3 urllib.parse) 与 贴吧小爬虫案例

    一.parse.urlencode() 与parse.unquote() urllib 和urllib.request都是接受URL请求的相关模块,但是提供了不同的功能.两个最显著的不同如下: 1.u ...

  2. python3 url 编码 解码

    对于url编码的转换,主要用urllib.parse包中的quote和unquote方法. quote进行编码,unquote进行解码. 代码实例: import urllib.parseu = &q ...

  3. python3编码和解码_python3的url编码和解码,自定义gbk、utf-8的例子

    因为很多时候要涉及到url的编码和解码工作,所以自己制作了一个类,废话不多说 码上见! # coding:utf-8 import urllib.parse class Urlchuli(): &qu ...

  4. python3默认编码_python3的url编码和解码,自定义gbk、utf-8的例子

    因为很多时候要涉及到url的编码和解码工作,所以自己制作了一个类,废话不多说 码上见! # coding:utf-8 import urllib.parse class Urlchuli(): &qu ...

  5. python 解码gbk_Python3的url编码和解码,自定义gbk、utf-8的例子

    今天小编就为大家分享一篇python3的url编码和解码,自定义gbk.utf-8的例子,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 因为很多时候要涉及到url的编码和解码工作,所 ...

  6. Python笔记-对字符串进行URL编码及解码

    这里主要是记录下在HTTP封包中URL编码中的解析与编码 代码模板如下: from urllib import parseif __name__ == '__main__':......commitS ...

  7. Python url编码、url解码

    url编码 import urllib.parseu = "%E6%88%91%E7%88%B1%E4%B8%AD%E5%9B%BD" print("url编码:&quo ...

  8. python中的URL编码和解码

    python中的URL编码和解码:test.py 1 # 引入urllib的request模块 2 import urllib.request 3 4 url = 'https://www.douba ...

  9. 使用python对url编码解码

    最近在抓取一些js代码产生的动态数据,需要模拟js请求获得所需用的数据,遇到对url进行编码和解码的问题,就把遇到的问题总结一下,有总结才有进步,才能使学到的知识更加清晰.对url进行编码和解码,py ...

最新文章

  1. 登录linux后台工具,linux后台进程管理工具-supervisor
  2. 智能待办,让老师真正的快乐
  3. Eureka、Zookeeper和Consul 的区别
  4. 【BZOJ4821】【SDOI2017】相关分析 [线段树]
  5. unity3d 人员控制代码
  6. Kubernetes初步学习
  7. 腾讯的强大不是偶然,小马哥很强大
  8. SprinMVC 控制器忽略静态资源
  9. mysql 主从同步,双主同步,如果服务器意外挂机,不同步怎么办
  10. landmark is float
  11. 整合Solr到Tomcat服务器,并配置IK分词
  12. RFC8998+BabaSSL---让国密驶向更远的星辰大海
  13. 8051单片机Proteus仿真与开发实例-74HC573锁存器驱动仿真
  14. 电商设计师如何正确认知自己的价值
  15. 【hadoop生态之Hbase】HBase部署与使用【笔记+代码】
  16. 【shell批量删除ovs网桥命令】
  17. 【ODYSSEY-STM32MP157C】上报数据到阿里云 IoT 平台
  18. Queue.queue 退出与阻塞
  19. html折叠新闻网页版本号,数字报纸HTML版本
  20. 带你入门多目标跟踪(四)外观模型 Appearance Model

热门文章

  1. 按照RFC3984协议实现H264视频流媒体 RTSP H264
  2. 集合源码阅读:LinkedList
  3. Docker - Compose 使用说明、详解docker-compose
  4. 修改Sql server中列的属性脚本
  5. android viewpage预加载和懒加载问题
  6. [dp]最长单调递增子序列LIS
  7. 谁说菜鸟不会数据分析--读书笔记
  8. Linux tar命令高级用法——备份数据
  9. background 与backgroundcolor区别
  10. 记录知识点或技术方案信息