You need to enable JavaScript to run this app. 如何遍历同格式URL列表批量抓取产品可用库存并填充至Excel指定列
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历同格式URL列表批量抓取产品可用库存并填充至Excel指定列

批量提取指定页面库存的实操方案

核心匹配规则:目标库存数值嵌套在class为availability in-stock的div标签内,文本格式为「数字 + available」,仅需提取前半段数字即可,无需处理其他冗余内容。

方案1:Excel内置Power Query 无代码实现

无需安装第三方工具,可直接在本地Excel内完成操作:

  • 将所有待抓取URL整理在Excel A列,首行设置表头待抓取URL
  • 选中URL所在区域,依次点击菜单栏「数据」-「从表格/区域」,将数据加载到Power Query编辑器
  • 新增自定义列,写入代码逐行加载对应网页源码:Web.Contents([待抓取URL], [Delay=500, RetryStrategy="Exponential"]),设置500ms请求间隔避免触发反爬
  • 对加载的网页源码做HTML解析,筛选匹配div[class="availability in-stock"]节点的文本内容
  • 通过列拆分功能,按空格将匹配到的文本拆分为两列,取第一列的数值即为对应URL的库存数
  • 将提取结果加载回原Excel表,直接对应粘贴到H列即可

方案2:轻量本地脚本 稳定处理万级URL

针对15000条的大数量场景,脚本方案可实现断点续跑、自动容错、异常标注,稳定性远高于无代码工具:

  • 核心依赖组件:用pandas读取Excel A列的URL列表,用requests发送带浏览器请求头的页面请求,用parsel做HTML节点匹配,用openpyxl直接将结果写回对应行的H列
  • 核心匹配逻辑代码:
    # 定位目标库存节点文本
    stock_raw_text = response.css('div.availability.in-stock::text').get()
    # 从“125 available”类格式的文本中提取纯数字
    stock_value = int(stock_raw_text.strip().split(' ')[0])
    
  • 必加的容错逻辑(解决过往方案失效的常见问题):
    • 每次请求随机设置1-2秒的间隔,请求头补全真实浏览器的User-Agent信息,避免被网站拦截返回反爬页面
    • 每抓取100条数据自动保存一次Excel,防止程序中途崩溃丢失已有结果
    • 跑批前先扫描H列已填内容的行,跳过对应URL实现断点续跑
    • 遇到请求失败、节点不存在的情况,在对应H列单元格标注抓取失败,不中断全量流程

过往同类抓取方案失效通常存在两个核心原因:一是节点选择器匹配错误,漏写类名连接符、混淆静态页面与JS动态渲染内容的定位逻辑;二是未做请求频率控制,短时间内发送大量请求被网站封禁IP,无法获取真实页面内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.23 23:54:05