如何遍历同格式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
相关产品推荐
相关产品推荐

