我有这样的网址:
https://user:password@example.com/path?key=value#hash
结果应为:
https://user:???@example.com/path?key=value#hash
我可以使用正则表达式,但我想通过将url解析为高级数据结构,然后对此数据结构进行操作,然后序列化为字符串来“正确”执行此操作。
这可以用Python吗?
请在投票前留言。这个问题出了什么问题?
答案 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