gpt4 book ai didi

python - urllib 没有引发无效的 URL

转载 作者:行者123 更新时间:2023-11-28 17:55:49 24 4
gpt4 key购买 nike

我在解析 URL 时遇到了一些奇怪的解析行为。我原以为会收到无效的 URL 异常,但相反,以下 URL 的主机名返回了“[]”括号中的 URL:

from urllib.parse import urlparse
print(urlparse('http://myurl.com[notmyurl.com]').hostname)

输出:

>>> notmyurl.com

这是预期的行为吗?

最佳答案

这是预期的行为,通过调试器运行代码并逐步执行 urllibparse.py 中的步骤,我们看到以下内容

@property
def _hostinfo(self):
netloc = self.netloc
_, _, hostinfo = netloc.rpartition('@')
_, have_open_br, bracketed = hostinfo.partition('[')
if have_open_br:
hostname, _, port = bracketed.partition(']')
_, _, port = port.partition(':')
else:
hostname, _, port = hostinfo.partition(':')
if not port:
port = None
return hostname, port

因此您可以看到 _hostinfo 方法调用将检查 url 中的括号,并返回括号内的值。下面是通过 pycharm 调试器运行代码的屏幕截图,正如您在代码窗口中看到的那样,它会告诉您为每个参数设置的值以及从哪里开始剥离 not url 以返回。

enter image description here

关于python - urllib 没有引发无效的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58564743/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com