【urllib】url编码问题简述

对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))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

独家| ChinaLedger白硕:区块链中的隐私保护

隐私问题一直是区块链应用落地的障碍问题之一,如何既能满足监管,又能不侵害数据隐私,是行业都在攻克的问题。那么,到底隐私问题为何难?有什么解决思路,以及实践创新呢?零知识证明、同态加密等技…

手机处理器排行榜2019_手机处理器AI性能排行榜出炉,高通骁龙第一,华为排在第十名...

↑↑↑击上方"蓝字"关注,每天推送最新科技新闻安兔兔在近日公布了今年四月份Android手机处理器AI性能排行榜,榜单显示高通骁龙865处理器的AI性能在Android阵营中排在第一名——该处理器的AI性能得分接近46万分,今年的小米10、三星G…

芯片支持的且会被用到的H.264特性 预测编码基本原理

视频压缩: 1.H.264基本档次和主要档次;2.CAVLC熵编码,即基于上下文的自适应变长编码;(不支持CABAC,即基于上下文的自适应算术编码)分辨率:仅用到1080p60,即分辨率为1920*…

MongoDB 数据库 【总结笔记】

一、MongoDB 概念解析 什么是MongoDB? ​ 1、MongoDB是有C语言编写的,是一个基于分布式文件存储的开源数据库系统,在高负载的情况下,添加更多节点,可以保证服务器的性能 ​ 2、MongoDB为web应用提供了高性能的数据存储…

PHP 函数截图 哈哈哈

转载于:https://www.cnblogs.com/bootoo/p/6714676.html

2016年光伏电站交易和融资的十大猜想

1领跑者计划备受关注,竞价上网或从试点开始 领跑者计划规模大,上网条件好,又有政府背书,虽说价格也不便宜,但省去很多隐性成本,对于致力于规模化发展的大型企业来说仍是首要选择。同时,从能源管…

loading gif 透明_搞笑GIF:有这样的女朋友下班哪里都不想去

原标题:搞笑GIF:有这样的女朋友下班哪里都不想去这样的广场舞看着不凉快吗?大哥慢点,机器经受不住你这样的速度求孩子的心里阴影面积生孩子就是用来玩的。有这样的媳妇做饭,下班哪里也不想去1.领导在门外用门夹核桃&am…

eigen库安装_OpenCV+Eigen上位机程序移植(七十一)

1、给硬盘分区现在小伙伴们对于给电脑硬盘分区想必比较头疼,给电脑硬盘分区分为两种情况,一是在安装系统之前给系统硬盘分区,二是在安装系统之后给硬盘分区,我们现在购买的品牌机和笔记本的用户比较多,而且笔记本和品牌…

【实战操作】使用FFmpeg将一个视频文件中音频合成到另一个视频中 只需三秒

直接进入主题 主要参数: -i——设置输入文件名。-f——设置输出格式。-y——若输出文件已存在时则覆盖文件。-fs——超过指定的文件大小时则结束转换。-t——指定输出文件的持续时间,以秒为单位。-ss——从指定时间开始转换,以秒为单位。-t从…

苹果依旧强大 物联网领域举足轻重

近几天科技界最火爆的话题就是苹果和谷歌两家公司,一是苹果发布财报,二是谷歌人工智能围棋战胜欧洲冠军以及谷歌母公司Alphabet或将超越苹果,成为世界上市值最大的公司。而在我眼里,未来五年内依然属于苹果。回顾下苹果公司公布的…

linux之SQL语句简明教程---SUBSTRING

SQL 中的 substring 函数是用来抓出一个栏位资料中的当中一部分。这个函数的名称在不同的资料库中不全然一样: MySQL: SUBSTR( ), SUBSTRING( )Oracle: SUBSTR( )SQL Server: SUBSTRING( )最经常使用到的方式例如以下 (在这里我们用 SUBSTR( ) 为例): SU…

listview 每行后面的小箭头_主卧带小衣帽装修,这几个装修方案,你喜欢哪个?...

南京装修交流圈 - 知乎​www.zhihu.com现在大部分人购买的房子面积还是普遍偏小的,每行每业都有自己的服装讲究,不同的场地、见不同的人等等。家中能有一个衣帽间自然也就是心中所向往和追求的。能够有独立的一个房间来做衣帽间当然更好,今天…

【养成好习惯】使用pipreqs导出本项目使用的环境

pipreqs pipreqs可以帮你找到当前项目的所有组件及其版本。就是当别人给你一个程序的时候,你要在自己电脑上运行起来,就需要安装程序所依赖的组件,总不能自己一个一个找吧。 # 安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simpl…

开放医疗交通大数据技术 服务于公共便民领域

孙丕恕还建议,交通拥堵的数据也可以开放,孙丕恕介绍,目前已有导航软件有部分数据,但还有些滞后,如果能够做到实时更新数据,那么也可以为出行者避开拥堵,节约时间。此外,如果二手车的…

【Tensorflow】基于卷积神经网络实现车牌的识别

引言: 过去几周我一直在涉足深度学习领域,尤其是卷积神经网络模型。最近,谷歌围绕街景多位数字识别技术发布了一篇不错的paper。该文章描述了一个用于提取街景门牌号的单个端到端神经网络系统。然后,作者阐述了基于同样的网络结构…

脚本启动显示查询频繁被服务器防御_面对CC攻击,该如何进行防御

网站被攻击是一件十分让人恼火的事情,不仅仅是让网站速度变慢、访问异常,导致用户体验变差,用户大量流失,而且还会导致网站关键词排名下降甚至被降权,极大干扰了网站的正常稳定运行。那面对CC攻击,该如何进…

PAT甲题题解-1011. World Cup Betting (20)-误导人的水题。。。

题目不严谨啊啊啊啊式子算出来结果是37.975样例输出的是37.98我以为是四舍五入的啊啊啊&#xff0c;所以最后输出的是sum0.005结果告诉我全部错误啊结果直接保留两位小数就可以了啊啊啊啊 水题也不要这么坑人啊啊啊啊 #include <iostream> #include <algorithm> #i…

【Django】文件上传以及celery的使用

上传文件、异步、初始化脚本 面试题&#xff1a; 项目中的静态文件处理&#xff08;JS/CSS/image&#xff09; 自己在机房内优化的方法&#xff1a;1. Nginx/lighttpd(lighty-douban)&#xff1a;Nginx 处理静态资源速度非常快&#xff0c;并且自身还带有缓存。2. 80: Nginx -&…

Android 查看每个应用的最大可用内存

http://blog.csdn.net/vshuang/article/details/39647167 Android 内存管理 &Memory Leak & OOM 分析 单个应用可用的最大内存 Android设备出厂以后&#xff0c;java虚拟机对单个应用的最大内存分配就确定下来了&#xff0c;超出这个值就会OOM。这个属性值是定义在…

分析一段H264视频数据

分析一段H264视频数据 Posted on 2007-05-31 09:42 vcommon 阅读(1968) 评论(8) 编辑 收藏 引用 分析 00 00 00 01 67 42 00 1E 99 A0 B1 31 00 00 00 01 H264的数据流分为两种&#xff0c;一种是NAL UNIT stream(RTP),一种是 bits stream, 两者可以互相转换。我们分析的这个…