【发布时间】:2020-10-01 11:49:32
【问题描述】:
试图从 URL 中过滤掉用户密码。
(我可以通过最后一个“@”符号手动拆分它,但我宁愿使用解析器)
Python 发出弃用警告,但 urlparse() 不处理用户/密码。
我应该只信任最后一个-@-sign,还是有新版本的拆分用户?
Python 3.8.2 (default, Jul 16 2020, 14:00:26)
[GCC 9.3.0] on linux
>>> url="http://usr:pswd@www.site.com/path&var=val"
>>> import urllib.parse
>>> urllib.parse.splituser(url)
<stdin>:1: DeprecationWarning: urllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() instead
('http://usr:pswd', 'www.site.com/path&var=val')
>>> urllib.parse.urlparse(url)
ParseResult(scheme='http', netloc='usr:pswd@www.site.com', path='/path&var=val', params='', query='', fragment='')
#neigher with allow_fragments:
>>> urllib.parse.urlparse(url,allow_fragments=True)
ParseResult(scheme='http', netloc='us:passw@ktovet.com', path='/all', params='', query='var=val', fragment='')
(编辑:repr() 输出是部分且具有误导性;请参阅我的回答。)
【问题讨论】:
标签: python-3.x url