首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >自动创建有效链接

自动创建有效链接
EN

Stack Overflow用户
提问于 2011-01-03 19:33:27
回答 3查看 519关注 0票数 1

我对python很陌生,所以请容忍我:)

我想知道python中是否有内置的方式将变量附加到URL中,而不管它的结构如何。

我希望在URL中添加一个URL变量(test=1),它可以具有以下任何结构之一

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已经可以这样做的话,我非常乐意使用任何内置的功能来节省我的时间;-)

提前感谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-03 20:12:56

使用Lennart RegebroAdam Vendenberg的建议,您可以这样做:

代码语言:javascript
运行
复制
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)

收益率

代码语言:javascript
运行
复制
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
票数 3
EN

Stack Overflow用户

发布于 2011-01-03 19:37:04

你可能想要像urllib.urlencode:http://docs.python.org/library/urllib.html#urllib.urlencode这样的东西

票数 1
EN

Stack Overflow用户

发布于 2011-01-03 19:51:04

是的,urlparse库(在Python3中称为urllib.parse )可以帮助您这样做:

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

特别是url解译和urlun解译方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4587627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档