python:如何用百分号编码网址?
我正在尝试把下面这个网址转换成另一个格式:
http://www.website.com/search/si/1/doctors/Vancouver, BC
想要转换成:
http://www.website.com/search/si/1/doctors/Vancouver%2C%20BC
我试过这个方法:
urllib.quote('http://www.website.com/search/si/1/doctors/Vancouver, BC', '')
结果却把所有东西都替换成了百分号。
请问正确的做法是什么呢?
2 个回答
0
urllib.quote('www.website.com/search/si/1/doctors/Vancouver, BC')
没有第二个参数,也没有协议部分 http://
。第二个参数是一个安全字符的列表,这些字符不会被替换,默认是 '/'
,在你的情况下是可以的。
1
使用 urllib.quote()
来处理网址中的 path
,其他部分保持不变:
from urllib import quote
from urlparse import urlparse, urlunparse
url = "http://www.website.com/search/si/1/doctors/Vancouver, BC"
scheme, netloc, path, params, query, fragment = urlparse(url)
path = quote(path)
print urlunparse((scheme, netloc, path, params, query, fragment))
输出结果是:
http://www.website.com/search/si/1/doctors/Vancouver%2C%20BC
另外,您还可以查看: