urllib 不能正确处理 # 字符

urllib does not handle # character properly

我的 url 如下所示:

http://me:me1234#@localhost:8080/

当我 运行 url 解析这个 url,而不是返回 me:me1234#@localhost:8080 的 netlocpath只有 returns me:me1234.

from six.moves.urllib import parse
o=parse.urlparse('http://me:me1234#@localhost:8080/')
print o

ParseResult(scheme='http', netloc='me:me1234', path='', params='', query='', fragment='@localhost:8080/')

知道为什么无法解析 # 吗?我认为这是一个非常标准的 url.

这是fragment. You need to先编码:

from six.moves.urllib import parse
o=parse.urlparse('http://me:me1234%23@localhost:8080/')
print o

这应该可以满足您的需求。