Python引用u的“非标准”部分的方法

2024-05-28 19:59:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下网址:

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的非标准部分进行编码,即不包括正斜杠和冒号等?你知道吗


Tags: httpscom内容编码标准wwwurllibquote
2条回答

您需要“safe”参数:

如果您在Python3上,使用urllib.parse

import urllib.parse

x ='https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr. Avila/1/9'
urllib.parse.quote(x, safe = ':/')

输出:

 'https://www.verizon.com/OnDemand/TVShows/TVShowDetails/Sr.%20Avila/1/9'

例如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'

相关问题 更多 >

    热门问题