Python中的Google URL生成器

Python中的Google URL生成器,python,string,url,Python,String,Url,我正在尝试将Google URL Builder的功能添加到我的应用程序中 不幸的是,我不能确定确切的结果 我的代码 def buildurl(url): #take out old url builder url = sub('\?utm_source=.*?(&|$)utm_medium=.*?(&|$)|utm_term=.*?(&|$)|utm_content=.*?(&|$)|utm_c

我正在尝试将Google URL Builder的功能添加到我的应用程序中

不幸的是,我不能确定确切的结果

我的代码

        def buildurl(url):

            #take out old url builder
            url = sub('\?utm_source=.*?(&|$)utm_medium=.*?(&|$)|utm_term=.*?(&|$)|utm_content=.*?(&|$)|utm_campaign=.*?(&|$)','',url)

            #build url
            header += '?utm_source=' + self.data['source']
            header += '&utm_medium=' + self.data['medium']
            header += '&utm_campaign=' + self.data['campaign']

            #return long url
            return(url header + urllib.quote(header)
我的代码返回以下内容:

谷歌的URL生成器返回以下内容:

我可以将#axzz3ANwb5XDu推到后面,但是有没有办法以标准化的方式解析和重建url?

您应该签出模块。我已经修改了您的代码,这样它可以删除现有的url生成器部分,但保留查询的任何其他部分

from urlparse import urlparse, urlunparse

def buildurl(url):

    #take out old url builder.
    url = sub('utm_source=.*?(&|$)utm_medium=.*?(&|$)|utm_term=.*?(&|$)|utm_content=.*?(&|$)|utm_campaign=.*?(&|$)','',url)


    #Parse the url.        
    o = urlparse(url)

    #build url query.
    query = o.query
    query += 'utm_source=' + self.data['source']
    query += '&utm_medium=' + self.data['medium']
    query += '&utm_campaign=' + self.data['campaign']

    #return the url with the corrected query.
    return urlunparse(o.scheme, o.netloc, o.path, o.params, query, o.fragment)

应该位于url的末尾。

有一种方法可以解析url;它叫:


我会选择Pythons的urllib,它是一个内置库

import urllib.parse

getVars = {'var1': 'some_data', 'var2': 1337}
url = 'http://domain.com/somepage/?'

print(url + urllib.parse.urlencode(getVars))
输出:

http://domain.com/somepage/?var2=1337&var1=some_data
http://domain.com/somepage/?var2=1337&var1=some_data