python - 在 Python 中从 URL 中删除 utm_* 参数

标签 python

我一直在尝试从 URL 列表中删除所有 utm_* 参数。 我发现的最接近的是:https://gist.github.com/626834 .

有什么想法吗?

最佳答案

有点长但是使用了url*模块,避免了re。

from urllib import urlencode
from urlparse import urlparse, parse_qs, urlunparse

url = 'http://whatever.com/somepage?utm_one=3&something=4&utm_two=5&utm_blank&something_else'

parsed = urlparse(url)
qd = parse_qs(parsed.query, keep_blank_values=True)
filtered = dict( (k, v) for k, v in qd.iteritems() if not k.startswith('utm_'))
newurl = urlunparse([
    parsed.scheme,
    parsed.netloc,
    parsed.path,
    parsed.params,
    urlencode(filtered, doseq=True), # query string
    parsed.fragment
])

print newurl
# 'http://whatever.com/somepage?something=4&something_else'

关于python - 在 Python 中从 URL 中删除 utm_* 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11640353/

相关文章:

python - 连分数 Python

python - MySQL一对多转JSON格式

python - 将数据帧的索引设置为字典中的单个键

python - 如何在Django中实现这个模型?

带参数的 Python Cement 子命令

python - 多层前馈网络无法在 TensorFlow 中训练

python - Flask - 蓝图 - 在第一次请求之前?

python - xlsxwriter 的 set_header 未按预期工作

python - 从 gzip 文件写入未压缩文件的内存有效方法

python - django类型对象Http404没有属性get