2010-04-01 65 views
4

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

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

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

我们真的需要一个“://”来确定是否存在网络地址吗?

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

回答

6

没有方案://,并不能保证example.com是一个域。你可以有一个名为example.com的目录。同样,你可以有一个url'omfgroflmao/path/file.ext',你如何知道'omfgroflmao'是否是本地网络上的一台机器(即netloc)还是它是一个路径组件?

我看不出Python代码实际上是错误的,但也许文档需要明确地阐明在这种模棱两可的情况下(我没有选中)的行为。

1

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

+1

但是你可以有这样的然后类似example会是正确的 – Ben 2010-04-01 22:23:35