如何拆分URL指定区间内容并聚合同路径URL的全部查询参数
实现方案
你可以用字典存储每个基础路径对应的参数键集合,自动完成同路径参数的去重聚合,完整实现代码如下:
from collections import defaultdict # 存储结构:key为URL基础路径,value为该路径对应的参数键集合 path_params = defaultdict(set) # 第一步:读取原文件提取基础路径和参数键 with open("file.txt", "r", encoding="utf-8") as f: for line in f: line = line.strip() if not line: continue # 剥离<p></p>标签 raw_url = line.removeprefix("<p>").removesuffix("</p>") if "?" not in raw_url: path_params[raw_url] = set() continue # 拆分基础路径和查询串 base_path, query_str = raw_url.split("?", 1) # 处理转义的&分隔符,拆分所有键值对提取参数键 for kv in query_str.replace("&", "&").split("&"): if "=" in kv: param_key = kv.split("=")[0] path_params[base_path].add(param_key) # 第二步:拼接要求格式输出到结果文件 with open("output.txt", "w", encoding="utf-8") as f: for base_path, param_keys in path_params.items(): # 按a/b/c/d的顺序排序参数键,和示例输出顺序一致 sorted_keys = sorted(param_keys) # 拼接参数串 query_part = "&".join([f"{key}=" for key in sorted_keys]) final_line = f"<p>{base_path}?{query_part}</p>\n" f.write(final_line)
如果不需要固定参数的输出顺序,删掉sorted()直接遍历param_keys即可。
内容的提问来源于stack exchange,提问作者Gaming World
相关产品推荐
相关产品推荐

