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

如何用Python Selenium提取网页JS中商品条码与规格属性值

最优实现方案

核心逻辑:目标数据已经存储在页面全局JS变量中,不需要正则匹配拆分script标签内容,直接通过Selenium执行JS语句读取变量即可,自动转换为Python字典结构后遍历就能拿到全量规格与条码对应关系,可靠性远高于正则拆分。

可直接运行的实现代码

def barkodBul():
    # 直接执行JS读取全局变量,返回结果自动转换为Python字典/列表结构
    product_data = driver.execute_script("return window.__PRODUCT_DETAIL_APP_INITIAL_STATE__")
    # 空值校验避免报错
    if not product_data or not product_data.get("product", {}).get("variants"):
        return []
    
    result_list = []
    # 遍历所有规格项提取对应值
    for variant in product_data["product"]["variants"]:
        spec_value = variant.get("attributeValue", "未知规格")
        barcode_value = variant.get("barcode", "无对应条码")
        # 按你需要的格式拼接输出
        output_item = f"{spec_value} 对应{spec_value}的条码:{barcode_value}"
        print(output_item)
        result_list.append(output_item)
    return result_list

原代码问题说明

  • 拆分脚本内容时只取了第一个包含barcode的片段,所以只能拿到单个条码
  • 用字符串拆分的方式解析类JSON结构,容错率极低,页面结构稍微变化就会匹配失败
  • 匹配到第一个条码后就直接return,终止了遍历逻辑,无法获取全量数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:36:05