从URL中删除密码

时间:2017-10-24 08:13:15

标签: python url-parsing

我有这样的网址:

https://user:password@example.com/path?key=value#hash

结果应为:

https://user:???@example.com/path?key=value#hash

我可以使用正则表达式,但我想通过将url解析为高级数据结构,然后对此数据结构进行操作,然后序列化为字符串来“正确”执行此操作。

这可以用Python吗?

请在投票前留言。这个问题出了什么问题?

1 个答案:

答案 0 :(得分:4)

您可以使用内置的urlparse从网址中查询密码。它在Python 2和3中都可用,但在不同的位置。

Python 2 import urlparse

Python 3 from urllib.parse import urlparse

示例

from urllib.parse import urlparse

parsed = urlparse("https://user:password@example.com/path?key=value#hash")
parsed.password # 'password'

replaced = parsed._replace(netloc="{}:{}@{}".format(parsed.username, "???", parsed.hostname))
replaced.geturl() # 'https://user:???@example.com/path?key=value#hash'

另请参阅此问题:Changing hostname in a url