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

如何用BeautifulSoup抓取无限滚动网站数据?以耐克男鞋页面为例

问题原因
  • 耐克官网的商品列表页采用懒加载+分页加载逻辑,首次打开页面只会静态渲染前24个商品,剩余商品在用户向下滚动页面时,通过前端异步请求接口加载,不会包含在首次请求返回的HTML内容里
  • 你当前使用的requests库只能获取首次请求的静态HTML内容,自然只能解析到前24个商品
解决方案

方案1:直接调用商品列表接口(推荐,效率更高)

  • 打开浏览器开发者工具(F12),切换到「网络」标签,筛选「Fetch/XHR」请求
  • 手动向下滚动页面触发加载更多商品,找到请求前缀包含product或者search的异步请求,查看请求参数:一般会带有offset(偏移量)、count(单次返回数量)两个核心参数,首次请求offset为0返回24个,下一次offset=24,以此类推
  • 直接构造该接口的请求,调整offset参数循环请求即可拿到全量商品数据,接口返回的多为JSON格式,无需解析HTML,提取效率更高
  • 注意构造请求时要携带完整的请求头,包括User-Agent、Referer等,避免被反爬拦截,同时控制请求频率,避免IP被限制

方案2:使用自动化工具模拟页面滚动

如果你不想找接口,可以用Selenium、Playwright等自动化测试工具模拟真实用户操作:

  • 启动无头浏览器打开目标页面
  • 编写脚本模拟向下滚动的操作,每次滚动后等待几秒让商品加载完成,直到页面不再加载新商品
  • 拿到加载完成后的完整页面HTML,再传给BeautifulSoup解析即可拿到所有商品信息
代码优化提示

你当前的代码只做了一次初始页面请求,需要结合上面两种方案调整逻辑,才能拿到全量数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:15:02