.Split()方法用于解析url路径python

时间:2014-05-27 20:49:51

标签: python django parsing

如何拆分这样的网址(来自django对象选择):

[<PathsOfDomain: www.somesite.com/>, <PathsOfDomain: somesite.com/prof.php?pID=589>, <PathsOfDomain: www.somesite.com/some/path/here/paramid=6, <PathsOfDomain: www.somesite.com/prof.php?pID=317>, <PathsOfDomain: www.somesite.com/prof.php?pID=523>]

我有代码:

if self.path_object is not None:
    dictpath = {}
    for path in self.path_object:
        print path #debugging only
        self.params = path.pathToScan.split("?")[1].split("&")
        out = list(map(lambda v: v.split("=")[0] +"=" + self.fuzz_vectors, self.params))
        dictpath[path] = out
    print dictpath

我收到错误:

self.params = path.pathToScan.split("?")[1].split("&")
IndexError: list index out of range

我在这里做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

self.params = path.split("?")[1].split("&")

应该是

self.params = path.path.split("?")[1].split("&")

path是PathsOfDomain对象,但您需要path.path,其中包含路径的实际字符串。

您还应该查看urlparse模块,其中包含有助于解析URL的代码。您可以在此处使用它来简化代码。