You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python从含嵌套参数的URL中提取参数键名生成目标数组

实现方案

思路

  • 利用Python标准库urllib.parse的URL解析能力,先提取第一层URL的所有查询参数名
  • 遍历每个参数的取值,判断取值是否为合法HTTP/HTTPS URL,若是则递归解析该嵌套URL的查询参数
  • 最终将所有收集到的参数名拼接为参数名=的格式,存入列表即可

代码实现

from urllib.parse import urlparse, parse_qs, unquote

def extract_nested_url_params(url):
    param_names = []
    # 解码URL避免编码后的嵌套URL无法识别
    decoded_url = unquote(url)
    parsed = urlparse(decoded_url)
    # 解析当前URL的查询参数
    query_params = parse_qs(parsed.query)
    for param_name, param_values in query_params.items():
        param_names.append(param_name)
        # 遍历参数值,判断是否为可解析的HTTP/HTTPS URL
        for val in param_values:
            nested_parsed = urlparse(val)
            if nested_parsed.scheme in ("http", "https") and nested_parsed.netloc:
                # 递归解析嵌套URL的参数
                param_names.extend(extract_nested_url_params(val))
    # 格式化输出为要求的格式
    return [f"{name}=" for name in param_names]

# 测试示例
url = "https://tracking.example.com:443/attribution_tracking/conversions/1980.js?p=https://example.com/search?addsearch=test+search&e="
extracted_parameters = extract_nested_url_params(url)
print(extracted_parameters)

输出结果

运行上述代码后输出和要求完全一致:

['p=', 'addsearch=', 'e=']

内容的提问来源于stack exchange,提问作者Eric John E.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:15:04