>>> import urllib
>>>
>>> urllib.quote('1/2&3 ', safe='/')
'1/2%263%20'
>>>
>>> urllib.quote_plus('1/2&3 ', safe='')
'1%2F2%263+'
>>> urllib.unquote('1%2F2%263+')
'1/2&3+'
>>> urllib.unquote_plus('1%2F2%263+')
'1/2&3 '
urlencode将字典参数转化为url查询字符串示例:import urllibd = {"a":1, "b":2}urllib.urlencode(d)'a=1&b=2'quote将单个字符串编码urllib.quote('1/2&3 ', safe='/') urllib.quote_plus斜杠/被编码为%2F;safe是指定某字符不urlencode,默认是空;该方法会将空格转换为+
适用于python的快速百分比编码/解码。
该库不能替代urllib 。 urllib是Python标准库的一部分,应该成为引用和取消引用URL的首选。 但是,应该知道对URL的引用或取消引用是性能瓶颈,并且您可以使用下面描述的编码,然后使用此库一定会很有趣。
from urlquote import quote
quoted = quote ( '/El Niño/' )
assert ( quoted == '/El Niño/' . encode ( 'utf-8' ))
由于该库使用cffi接口,因此可以在任何版本的Python上正常工作。 对于Linux,必须在较旧版本的libc或等于要在其上使用的平台上的libc版本上构建该轮子。
pip install urlquote
quote对UTF-8编码的字节进行操作。 如果传递了字符串
URL编码、解码原因
通常如果一样东西需要编码,说明其并不适合直接传输。原因多种多样,如Size过大,包含隐私数据。对于Url来说,之所以要进行编码,是因为Url中有些字符会引起歧义。
例如,Url参数字符串中使用key=value键值对这样的形式来传参,键值对之间以&符号分隔,如/s?q=abc&ie=utf-8。如果你的value字符串中包含了=或者&,那么势必会造成接收Url的服务器解析
1.urllib.urlencode(query, doseq=0)
接受参数形式为:[(key1, value1), (key2, value2),...] 和 {'key1': 'value1', 'key2': 'value2',...}
返回的是形如'key2=value2&key1=value1'字符串。
当我们需要用参数进行url的构造时,我们通常需要用到quote或urlencode工具
两者不需要一起使用
from urllib.parse import quote
from urllib.parse import urlencode
其中,urlencode的参数需要是字典形式(多个参数),quote的参数是字符串形式(一个参数)
有时候我们发现,构造好后的url访问出错,这可能是因为编码...
最近需要将一些python代码转成java,遇到url编码
urllib.quote(str,safe='/')
但java中URLEncoder.encode(arg, Constant.UTF_8)会将'/'转成%2F
网上查了一下 java没见到类似的safe方式,只好自己实现一个类
package com.ppc.spider.fc.util;
import jav...
最近学习了Django,并且还自己做了个教学资源管理系统,感兴趣的朋友可以访问项目的github
在看学习视频或教程的时候只是学了一些基本功能,然后在实现一个比较大的项目过程中还是有很多坑的,在此专门花一些时间记录一下学习过程中遇到的坑和搜索到的解决方案,这样以后能及时查找对应的解决方案。
一、下载文件不显示文件名的问题(只显示“下载”两个字而不是实际文件名)
我找了两种解决方案
1、使用es...
20.2.1 统一资源定位符
URL(Uniform Resource Locator,统一资源定位符),它是一个Web地址,用来定位一个文档,或者调用CGI程序来为客户端产生一个文档。
URI(Uniform Resource Identifier,统一资源标识)
URN(Uniform Resource Name,统一资源名称)