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

使用BeautifulSoup提取script标签中productCode字段的方法

如何从script标签中提取productCode字段值

以下是两种实用方法,帮你提取script标签里的productCode数据:

方法1:正则表达式直接匹配

如果页面源码里的productCode格式固定(比如始终是"productCode":"XXX"),直接用正则匹配最快捷:

import requests
import re

# 替换成你要爬的商品页面URL
target_url = "你的商品页面URL"
page_html = requests.get(target_url, headers={"User-Agent": "Mozilla/5.0"}).text

# 匹配productCode字段
code_match = re.search(r'"productCode":"(.*?)"', page_html)
if code_match:
    product_code = code_match.group(1)
    print(f"提取到型号:{product_code}")

方法2:解析JSON结构(更可靠)

多数电商网站会把产品数据以JSON格式嵌入script标签(比如绑定到某个全局变量),这种情况下解析JSON更稳定:

import requests
from bs4 import BeautifulSoup
import json

target_url = "你的商品页面URL"
page_html = requests.get(target_url, headers={"User-Agent": "Mozilla/5.0"}).text
soup = BeautifulSoup(page_html, "html.parser")

# 遍历所有script标签,找到包含productCode的那个
for script_tag in soup.find_all("script"):
    script_content = script_tag.string
    if not script_content:
        continue
    if '"productCode"' in script_content:
        # 处理可能的JS变量前缀(比如"window.productInfo = ")
        if script_content.strip().startswith("window."):
            json_content = script_content.split("=", 1)[1].strip().rstrip(";")
        else:
            json_content = script_content
        
        try:
            product_data = json.loads(json_content)
            product_code = product_data.get("productCode")
            if product_code:
                print(f"提取到型号:{product_code}")
                break
        except json.JSONDecodeError:
            # 解析失败时,降级用正则匹配
            fallback_match = re.search(r'"productCode":"(.*?)"', script_content)
            if fallback_match:
                print(f"提取到型号:{fallback_match.group(1)}")
                break

注意事项

  • 记得给请求加User-Agent头,避免被网站反爬拦截;
  • 如果知道包含productCode的script标签有特定属性(比如id),可以直接用soup.find("script", id="指定ID")定位,不用遍历所有标签,效率更高;
  • 部分网站可能会对JSON内容做混淆,此时正则方法会更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:10:32