2024-04-20 03:04:37 发布
网友
我在解析URL时遇到了一些奇怪的行为。我希望收到无效的URL异常,但以下URL的主机名返回了位于“[]”括号中的URL:
[]
from urllib.parse import urlparse print(urlparse('http://myurl.com[notmyurl.com]').hostname)
输出:
>>> notmyurl.com
这是预期的行为吗
这是通过调试器运行代码并单步执行parse.pyurllib中的步骤的预期行为。我们看到以下内容
parse.py
urllib
@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
_hostinfo
这是通过调试器运行代码并单步执行
parse.py
urllib
中的步骤的预期行为。我们看到以下内容因此,您可以看到
_hostinfo
方法调用将检查url中的括号,并返回括号内的值。下面是通过pycharm调试器运行代码的屏幕截图,正如您在代码窗口中看到的那样,它告诉您每个参数的值集,以及从何处开始剥离要返回的not url相关问题 更多 >
编程相关推荐