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

使用BeautifulSoup提取URL中产品分类字段并存储为列表

问题场景
  • 现有一批结构统一、前缀相同的URL列表,所有URL路径均包含ingredient-disclosure字段
  • 提取规则:ingredient-disclosure字段后第一个以/分隔的内容即为对应产品分类
  • 示例URL:https://churchdwight.com/ingredient-disclosure/commercial-professional/42000024-ah-trash-can-dumpster-deodorizer.aspx,对应提取值为commercial-professional
  • 目标:汇总所有URL的提取值,生成去重后的完整产品分类列表
可行实现方案

方案1:Python脚本批量处理(适合千级以上大量URL场景)

无需安装第三方依赖,用Python标准库即可实现,自带异常跳过、自动去重逻辑:

from urllib.parse import urlparse

def get_category_list(urls):
    category_set = set()
    for url in urls:
        path_segments = [seg for seg in urlparse(url).path.split("/") if seg]
        try:
            marker_pos = path_segments.index("ingredient-disclosure")
            category_set.add(path_segments[marker_pos + 1])
        except (ValueError, IndexError):
            # 自动跳过格式不符合规则的异常URL
            continue
    return sorted(category_set)

# 调用示例
if __name__ == "__main__":
    # 替换成你的URL列表,也可以从txt/CSV文件逐行读取URL
    all_urls = [
        "https://churchdwight.com/ingredient-disclosure/commercial-professional/42000024-ah-trash-can-dumpster-deodorizer.aspx"
    ]
    final_categories = get_category_list(all_urls)
    print("提取完成的产品分类:", final_categories)

方案2:Excel公式处理(适合URL存放在表格中、无代码基础的场景)

假设所有URL存放在表格A列,第一条URL在A2单元格,在B2单元格输入以下公式后下拉填充,即可批量得到每行URL对应的分类值:

=MID(A2,FIND("ingredient-disclosure/",A2)+21,FIND("/",A2,FIND("ingredient-disclosure/",A2)+21)-FIND("ingredient-disclosure/",A2)-21)

注:公式里的21是ingredient-disclosure/的字符长度,提取完成后选中B列,用Excel自带的「删除重复值」功能即可得到去重后的完整分类列表。

方案3:正则快速提取(适合在编辑器、文本工具中临时提取的场景)

在任何支持正则匹配的工具(VS Code、Notepad++、各类文本编辑器)中,使用以下正则规则匹配内容,取第一个捕获组的结果就是对应分类值:

ingredient-disclosure/([^/]+)/

批量提取所有匹配结果后,做一次去重处理即可得到最终分类列表。

内容的提问来源于stack exchange,提问作者bolbolnuggets

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:27:08