我是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已经能够以某种方式完成它,我会非常乐意使用任何可以节省一些时间的内置功能; - )
提前致谢
答案 0 :(得分:3)
同时使用Lennart Regebro和Adam 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方法。