Python的urlquote方法;“非标准”;部分url
我有以下url,我有:Python的urlquote方法;“非标准”;部分url,python,Python,我有以下url,我有: https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9 我想编码它,使它看起来像一个正常的网址,但是有效的。例如: https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9 但是,如果我使用标准的urllib.quote,它会对所有内容进行编码: >>> urllib.quote('ht
https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9
我想编码它,使它看起来像一个正常的网址,但是有效的。例如:
https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9
但是,如果我使用标准的urllib.quote
,它会对所有内容进行编码:
>>> urllib.quote('https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9')
'https%3A//www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9'
是否有一种python方法只对url的非标准部分进行编码,即不包括斜杠和冒号等?例如Python2
In [45]: scheme, netloc, path, query, fragment = urllib2.urlparse.urlsplit(url)
In [60]: urllib2.urlparse.urlunsplit([scheme, netloc, urllib.quote(path), query, fragment])
Out[60]: 'https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9'
您需要“安全”参数: 如果您使用的是Python3,请使用
urllib.parse
:
import urllib.parse
x ='https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9'
urllib.parse.quote(x, safe = ':/')
输出:
但是我的url中没有查询字符串?
'https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9'