自动创建有效链接

时间:2011-01-03 19:33:27

标签: python url

我是python的新手,所以请耐心等待我:)

我想知道在python中是否有任何内置方法可以将变量附加到URL,无论其结构如何。

我想将一个URL变量(test = 1)添加到一个可能具有以下任何结构的URL中

  

http://www.aaa.com(只会添加   “/?test = 1”)到最后

     

http://www.aaa.com/home(就像那个   上面,只需添加“/?test = 1”)   结束

     

http://www.aaa.com/?location=home   (会发现已经有了?   正在使用,并将添加& test = 1   结束)

     

http://www.aaa.com/?location=home&page=1   (就像上面的那个,会弄明白的   已经有了吗?被使用,和   会添加& test = 1到最后)

我很乐意自己写一些东西,但是如果python已经能够以某种方式完成它,我会非常乐意使用任何可以节省一些时间的内置功能; - )

提前致谢

3 个答案:

答案 0 :(得分:3)

同时使用Lennart RegebroAdam Vendenberg的建议,您可以执行以下操作:

import urllib
import urlparse

query=urllib.urlencode({"test":1})
urls=['http://www.aaa.com',
      'http://www.aaa.com/home',
      'http://www.aaa.com/?location=home',
      'http://www.aaa.com/?location=home&page=1']
for url in urls:
    x=urlparse.urlparse(url)
    new_query=(x.query+'&'+query) if x.query else query
    y=urlparse.urlunparse((x.scheme,x.netloc,x.path,x.params,new_query,x.fragment))
    print(y)

产量

http://www.aaa.com?test=1
http://www.aaa.com/home?test=1
http://www.aaa.com/?location=home&test=1
http://www.aaa.com/?location=home&page=1&test=1

答案 1 :(得分:1)

您可能需要类似urllib.urlencode的内容:http://docs.python.org/library/urllib.html#urllib.urlencode

答案 2 :(得分:1)

是的,urlparse库(在Python 3中称为urllib.parse)可以帮助你做到这一点:

http://docs.python.org/library/urlparse.html

特别是urlparse和urlunparse方法。