电商数据采集:方法、工具完整指南与 Python 教程

电子商务 数据采集可帮助定价团队、电商平台卖家和商品目录管理人员跨竞争对手店铺收集公开的商品信息。可靠的工作流程会记录 商品标识、价格、促销状态、规格款式、地区和时间戳 ,而不是只保存一个当前可见的价格。
如果官方 API 或商品数据源能提供所需字段,请优先使用它们。对于动态店铺,请检查允许访问的公开 JSON 响应。当工作流程需要渲染页面、浏览器交互、特定地区的报价或无代码配置时,请使用 NodeMaven 抓取浏览器 ,以应对工作流需要渲染页面、浏览器交互、特定位置优惠或无代码设置的情况。
根据 美国人口普查局 2026 年第二季度《季度零售电商销售报告》,美国零售电商销售额在该季度达到 3402 亿美元 ,占 零售总额的 17.1%。商品价格、促销活动、规格款式和地区报价可能快速变化,因此每一条观测记录都需要明确的比较规则。
关键要点
- 从一个 官方来源,然后测试允许访问的公开 JSON 响应。
- 结合 商品列表数据和尺码级别的款式数据 合并为一条经过验证的报价记录。
- 保持 价格、促销状态、商品 ID、尺码、市场和时间戳 与每条采集到的报价一同记录。
- 使用 托管浏览器工作流程 以获取渲染后的页面、保持配置文件连续性、进行可视化审查或云端执行。
选择电商数据采集方法
从以下内容开始 NodeMaven 抓取浏览器 当您需要无代码工作流、渲染后的页面、产品筛选、款式规格选择、基于地理位置的优惠或周期性浏览器自动化时使用。您可以通过现成模板、自然语言 AI 提示词或代码来构建工作流,无需搭建本地浏览器。
Scraping Browser 包含 NodeMaven 代理、托管式反检测、自动 CAPTCHA 识别、可复用配置文件、Live Browser 以及会话录制。无需单独支付浏览器费用。您只需为会话期间使用的轮换代理流量付费。
合适的方法仍取决于具体零售商以及采集所需的字段。
| 方法 | 最佳适用场景 | NodeMaven 的角色 |
|---|---|---|
| 爬虫浏览器 | 无代码采集、依赖大量 JavaScript 的商店、筛选器、分页、指定款式规格、基于地理位置的优惠以及周期性工作流 | 内置代理、CAPTCHA 识别、AI 提示词、模板、Live Browser、会话录制以及可复用配置文件 |
| 官方 API 或数据源 | 零售商或供应商提供有文档记录的访问方式以及所需的产品字段 | 通常无需配置代理 |
| 允许访问的公开 JSON | 经过验证的前端响应包含产品数据,且足够稳定,可用于监控 | 使用 NodeMaven 代理获取区域性结果或执行重复请求 |
| HTML 解析 | 所需字段出现在初始页面源代码中 | 当位置或请求连续性会影响显示结果时,请使用代理 |
选择能够可靠返回所需字段的最轻量方法。在扩展到整个类目之前,先验证一个商品和一个位置。有关直接请求与浏览器采集的技术对比,请参阅 NodeMaven 的 网络爬虫与 API 对比指南.
为区域性和重复采集配置代理环境
商品报价可能会因 国家、城市、ZIP 邮编、货币、配送地点或会话状态而变化。在比较报价之前先设定采集位置,然后在每条保存的记录中保留该上下文。
对于重复的合规请求,NodeMaven 住宅代理 提供 国家、城市、ISP 和 ZIP 级别的定位。粘性会话可以在一个连贯的浏览流程中保持同一 IP。轮换会话适用于无需共享浏览器状态的独立商品请求。
在验证浏览器页面、公开响应和导出记录时,请使用相同的市场上下文。来自一个位置的价格不应与从另一个位置采集的报价直接比较。
在采集页面之前定义产品和报价数据
A 商品记录 描述商品本身:
- 名称
- 品牌
- 零售商商品 ID
- 目录 ID
- 颜色
- 变体
- 尺码
- GTIN
An 报价观测 描述该商品在指定时间和地点所显示的报价:
- 当前价格
- 促销状态
- 货币
- 市场国家/地区
- 来源 URL
- 会话或位置上下文
- 采集时间戳
例如,“Nike Shox Z,颜色 HQ7540-011,女款 7 码”是一个商品变体。该变体在美国店面于 09:00 UTC 显示的 $78.97 促销报价,则是一条报价观测。
比较同等报价
标价需要商品上下文。两个同名商品可能在尺码、颜色、包装规格、成色、卖家、配送条款或市场上存在差异。
在比较竞争对手之前,请先确认:
- 商品身份: 零售商商品 ID、品牌、标题和型号
- 变体身份: 尺码、颜色、SKU 以及 GTIN(如有)
- 价格类型: 常规价格、促销价格、会员价格或平台优惠价
- 位置: 国家、城市、ZIP 邮编、货币和配送场景
- 时间: 采集时间戳和采集频率
该 美国国家科学院对网络采集价格数据的评审 讨论了异常值、卖家相关性、网站变更以及地区差异化结果等风险。任何价格或库存监控工作流都应包含这些检查。
为公开产品数据构建 Python 工作流
本教程以一个公开的 Nike 女款运动鞋搜索结果页为例,演示如何识别商品数据响应并映射其字段。Python 示例使用的是 通用占位符 URL。请在确认目标零售商的官方来源或允许访问的公开响应之后,再替换这些 URL。
整个工作流按以下顺序进行:
商品列表响应 → 商品标识与价格 → 尺码级 SKU 和 GTIN 数据 → 经过校验的报价记录 → CSV 或 SQL 历史记录
第 1 步:找到商品搜索请求
打开一个公开的商品搜索页或分类页。在本例中,页面显示的是 Nike 女款运动鞋。
打开 Chrome DevTools,选择 网络进行定向,然后选择 Fetch/XHR。重新加载页面或执行一次搜索。Network 面板会显示列表页触发的所有请求。
找到返回页面所展示商品的那个请求。在 Nike 搜索结果页上,相关请求名为 产品.

请求列表中可能还包含分析、事件跟踪和推荐调用。请先选中与页面上可见商品卡片相关联的请求,再打开其响应。
第 2 步:映射响应字段
Nike 的 产品 响应中包含一个名为 hydratedProducts的数组。每个商品对象都包含零售商商品 ID、标题、当前价格、促销状态、颜色代码和市场国家/地区。
按如下方式将字段映射到报价记录中:
| Nike JSON 字段 | 输出字段 |
|---|---|
hydratedProducts[].productId | retailer_product_id |
hydratedProducts[].catalogId | catalog_id |
hydratedProducts[].name | 名称 |
hydratedProducts[].currentPrice | current_price |
hydratedProducts[].isOnSale | is_on_sale |
hydratedProducts[].color | colour_code |
hydratedProducts[].country | market_country |
hydratedProducts[].cloudProductId | cloud_product_id |
在将价格加入数据集之前,请先与页面上可见的商品卡片进行核对。在本示例中,Nike Shox Z 的商品卡片显示的价格为 $78.97,与 currentPrice: 78.97 在响应中的值一致。

第 3 步:先测试单个商品,再采集整个品类
在采集整个品类之前,请先验证单个商品。
以 Nike Shox Z 为例,请确认以下几点:
- 页面上可见的商品卡片与
hydratedProducts[].name. - 卡片价格与
hydratedProducts[].currentPrice. - 记录中包含
productId,catalogId,以及color. - 响应中的
国家与所监控的市场一致。 - 价格已通过
isOnSale. - 产品页面上显示的某一尺码与响应中的某个
skuData[].size值相匹配。
仅凭产品 ID 匹配并不能证明某个价格已可用于比较。产品名称、价格、颜色、市场、促销状态和所选尺码必须指向同一报价。
如果价格或所选尺码与页面不一致,请在存储记录之前检查所选颜色、尺码、货币、国家、税费显示、促销状态以及缓存响应的上下文。
第 4 步:配置 Python 环境
创建虚拟环境并安装示例中使用的软件包。
下面的代码使用通用的端点占位符以及截图中展示的 Nike 响应结构。请勿将本文中的端点 URL 复制到实际的采集脚本中。
在发送请求前配置会话
对于需要特定市场或重复采集的合规工作流,请在请求产品数据之前先配置代理会话。请从控制面板中添加您的 NodeMaven 凭据,而不是将其复制到共享脚本中。
请使用与所监控市场相匹配的位置。对于多步骤浏览器流程,当需要保持相同位置和会话上下文一致时,请使用粘性会话。对于相互独立的产品请求,轮换住宅代理可以提供全新的 IP,而无需在不同产品之间保留浏览器状态。
第 5 步:创建产品数据模型和请求辅助函数
Nike 的响应确定了产品列表的数据结构,但截图中并未体现分页参数。请先从一个经过验证的响应开始。
部分零售商使用 页面, offset, 开始, cursor,或 限制 进行分页。只有在检查列表请求并确认相关参数之后,才添加分页循环。
该模型将 零售商产品 ID、当前价格、促销状态、颜色、市场和采集时间 保存在一起。这些字段可支持后续比较,同时不会丢失价格背后的上下文。
第 6 步:从产品响应中添加变体数据
Nike 产品响应中包含一个 skuData 数组,用于存放尺码级别的产品变体。每个条目都包含显示尺码、零售商 SKU 和 GTIN。
按如下方式将尺码级别字段映射到采集记录中:
| Nike JSON 字段 | 输出字段 |
|---|---|
hydratedProducts[].skuData[].size | variant_size |
hydratedProducts[].skuData[].sku | variant_sku |
hydratedProducts[].skuData[].gtin | variant_gtin |
使用所选产品页面验证一条记录。例如,确认页面上的尺码按钮 W 5 / M 3.5 与 大小 字段在 JSON 响应中的值一致。
现在,每一行导出数据都可以代表一个产品与尺码的组合。这有助于跨零售商进行产品匹配,并让监控工作流能够区分同一款鞋在不同尺码下的两个报价。

此处显示的响应并未提供明确的可售性或库存状态字段。请勿仅凭某个尺码出现在 skuData中就推断其有库存。只有在获得许可的响应提供了明确字段时才添加库存数据,例如 inStock, 可用性, 库存,或 availability_status.
第 7 步:运行完整的采集流程并导出 CSV
验证字段映射后,请求获得许可的商品列表响应,提取商品记录,并将有效观测数据导出为 CSV 文件。
预期的终端输出:
CSV 输出示例:
CSV 在构建更大规模的监控管道之前提供了一个简单的验证层。在将数据用于价格分析之前,请先检查缺少商品 ID、价格、市场数据或响应结构异常的行。
第 8 步:将观测数据存储到 SQL
CSV 在早期验证阶段很适用。而 SQL 数据库则可以支持价格历史、零售商对比、品类分析以及按地区划分的报告。
随着系统的扩展,请将商品标识与单条观测记录分开存储。同一件商品会随时间推移,在不同颜色、尺码、国家和零售商之间产生大量价格记录。
每次采集运行时,请一并保存原始响应引用或一份小型审计样本。当零售商更改响应结构时,这些记录可以帮助团队更新字段映射,而不会把格式变化误认为真实的价格波动。
单次请求工作流验证完成后, Python 异步请求 可以支持受控扩展。
验证每一条报价观测记录
200 响应只能确认服务器已应答该请求。要得到可比较的报价观测数据,还需要匹配的 商品标识、变体、价格类型、货币、地区和时间戳.
对于平台商城的报价,请补充卖家、商品状况、履约方式和运费数据。对于以不同数量销售的商品,请先计算单位价格,再比较报价。
当工作流使用连续的浏览器会话时,地区的连续性会影响结果。相互独立的商品请求可以使用轮换。多步骤浏览通常需要在整个工作流结束前保持同一个稳定会话。在选择会话行为之前,请先阅读 NodeMaven 的 代理轮换指南 ,然后再选择会话行为。
使用 NodeMaven Scraping Browser 进行基于浏览器的电商数据采集
NodeMaven Scraping Browser 的用途远不止处理需要点击或输入 ZIP 编码的页面。它为电商团队提供了一个托管云浏览器,可通过渲染页面、浏览器配置文件、定时自动化、地区感知会话和可视化调试来采集公开的商品数据。

当工作流需要以下功能时,请使用 Scraping Browser:
- JavaScript 渲染的 分类页和产品页
- 产品搜索、筛选和分页
- 款式、尺寸、颜色或数量选择
- ZIP 邮编、城市、国家、货币或配送地点设置
- 定期的价格、目录、新品上架或库存监控
- 可保留 Cookie 和本地设置的可复用浏览器配置文件
- 用于排查问题的 Live Browser、控制台输出、截图和录屏
- Playwright、Puppeteer、原生 JavaScript 或自然语言 AI 提示词
对于稳定且允许访问的端点,公开的 JSON 响应可能是最精简的方案。Scraping Browser 同样适合希望针对目标站点使用完整浏览器工作流的团队,尤其是在目录页面频繁变化、地理位置会影响报价,或团队需要在将工作流投入生产前进行可视化审核的情况下。
一套实用的设置流程如下:
- 选择电商或价格监控模板。
- 设置代理类型、地理位置、会话行为和浏览器设置。
- 在 Playground 中测试分类页、搜索页或产品页的采集。
- 在 Live Browser 中查看渲染后的输出。
- 确认产品 ID、所选款式、价格、来源 URL 和地理位置上下文。
- 将工作流保存为可复用的配置文件,或通过 CDP 从 Playwright 或 Puppeteer 连接。
- 通过后端、队列或监控系统对其进行调度。
该 NodeMaven Scraping Browser 指南 涵盖模板、配置文件、位置设置、会话、Live Browser 以及 CDP 连接。
想要采集电商数据,却不想自己搭建浏览器技术栈? 通过 $3.50 付费试用,包括 750 MB 的住宅代理和移动代理流量试用 NodeMaven Scraping Browser。浏览器运行环境、模板、AI 提示词、CAPTCHA 解决、Live Browser 以及会话录制均已包含在符合条件的代理流量中。 以 $3.50 试用 Scraping Browser
结论:选择最轻量且可靠的工作流程
请选择能以最少维护成本返回所需商品字段的采集方法。若有官方数据源,请优先使用。当请求暴露稳定的字段映射时,可使用允许访问的公开 JSON 响应。当字段存在于初始页面源代码中时,可加入 HTML 解析。
对于需要无代码方案、渲染页面、浏览器交互、区域性商品优惠或周期性工作流的团队, NodeMaven Scraping Browser 将浏览器自动化与内置代理处理和可视化调试相结合。对于基于 Python 的采集,NodeMaven 住宅代理可为工作流提供一致的市场环境,并在零售商体验需要时提供稳定的会话。
在添加完整品类或另一家零售商之前,请先验证一个商品、一个变体和一个地区。每条观测记录都应存储商品 ID、价格、颜色、尺码、市场、来源 URL 和时间戳。



