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

Python使用BeautifulSoup.find_all无法获取网页全部图片问题求解

问题原因

  • 核心原因就是你猜测的页面未加载全部内容:Unsplash采用无限滚动的动态加载机制,首次请求返回的静态HTML仅包含首屏6~10张图片的内容,剩余图片需要页面滚动到接近底部时,浏览器才会异步请求更多数据渲染到页面。requests库仅能获取首次请求返回的静态HTML,无法触发动态加载逻辑,因此只能拿到少量图片。
  • 你使用的元素类名_2UpQX是Unsplash前端框架自动生成的动态类名,这类类名会随网站版本迭代频繁变动,稳定性极低,很容易出现爬取失效的情况。
  • 代码本身存在语法错误:print(len(images) 缺少右括号,实际运行会直接抛出语法错误,需要修改为print(len(images))。

可行解决思路

  • 使用Selenium、Playwright等无头浏览器工具,模拟用户滚动页面的操作,触发动态加载逻辑,等待所需内容全部渲染完成后再提取图片链接。
  • 直接抓取Unsplash的异步数据接口:在浏览器控制台的网络面板中筛选滚动页面时触发的图片资源请求,直接构造对应请求调用接口获取数据,该方式的效率远高于模拟浏览器操作。
  • 爬取过程中注意控制请求频率,避免触发网站反爬机制导致IP被限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 22:54:04