获取URL子子域

时间:2012-07-06 06:59:05

标签: python url

我使用以下Python代码段来获取网址:

address = self.request.url

这给了我看起来像这样的网址:

http://domain.tld

http://sub.domain.tld

但我的网址如下:

http://sub.sub.domain.tld

在这种情况下,代码根本不会返回URL。最后,我必须得到第一个' sub'来自URL的域。但是,如果网址有两个子域,则代码无法正常工作,我无法继续。

有谁知道如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

如果你对普通的python脚本没问题,

import urlparse
address = urlparse("http://sub.sub.domain.tld")

print address.netloc
print address.path
print address.scheme

答案 1 :(得分:0)

根据提供的信息,我本身无法给出答案。但我可以提供一些故障排除信息。如果request.url为空,那么可能还有另一个原因是它没有被填充。

我知道这是一个GAE请求对象。哪个继承自WebOb。

请求对象具有许多其他属性。尝试打印所有内容并查看它们包含的内容。

print self.request.host
print self.request.host_url
print self.request.scheme   # should be 'http'

如果这些都是空的,那么听起来好像没有正确创建请求对象。这可能是你的根本问题。

答案 2 :(得分:0)

self.request.url来自哪里似乎没有答案。它让我想起了谷歌应用程序引擎,所以在你使用GAE的可能性很大,你可以使用

self.request.host_url 

获取主机网址或

self.request.path_url

获取没有查询参数的网址。

来源:http://docs.webob.org/en/latest/reference.html

如果这与你提出的要求无关,我道歉。