Python urlparse,正确还是不正确?

时间:2010-04-01 21:58:58

标签: python urlparse

Python的urlparse函数将url解析为六个组件(scheme,netloc,path和其他东西)

现在我发现解析“example.com/path/file.ext”不返回netloc,而是返回路径“example.com/path/file.ext”。

不应该是netloc =“example.com”和path =“/ path / file.ext”吗?

我们真的需要一个“://”来确定是否存在netloc?

Python的门票:http://bugs.python.org/issue8284

2 个答案:

答案 0 :(得分:6)

如果没有scheme://,则无法保证example.com是一个域。你可以有一个名为example.com的目录。类似地,你可以有一个url'omfgroflmao / path / file.ext',你怎么知道'omfgroflmao'是否是本地网络上的一台机器(即netloc),或者它是否意味着它是一个路径组件?

我看不出Python代码实际上是错误的,但是文档需要在这种模糊的情况下明确说明行为(我没有检查过)。

答案 1 :(得分:1)

example.com/path/file.ext不是网址。这只是一些字符串。例如,如果您将<a href="example.com/path/file.ext">放入HTML页面,它将链接到http://example.com/path/file.ext。它只是Web浏览器提供的快捷方式,您不必预先添加http://。您甚至无法将此类URL用作urllib2.urlopen()和类似函数的参数。