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

Python使用BeautifulSoup进行Web Scraping图片爬取相关问题咨询

问题1 爬取Pexel无输出的原因

  • 第一是反爬拦截:Pexel对请求头校验比较严格,requests默认发送的User-Agent会被识别为爬虫,大概率返回403状态码或者非页面的错误内容,你可以先打印req.status_code和req.text确认返回内容是否正常。建议自定义请求头,添加正常浏览器的UA再尝试请求。
  • 第二是选择器不匹配:你当前代码里的CSS选择器img[src^="https://images.unsplash.com/photo"]是专门针对Unsplash的图片链接前缀写的,Pexel的图片CDN域名、链接规则和Unsplash完全不同,用同一个选择器自然匹配不到任何元素,自然没有输出。

问题2 Unsplash爬取图片少且重复的解决方法

  • 你拿到的图片少是因为Unsplash首屏默认只渲染15张左右的图片,其余图片是懒加载的,初始HTML里没有对应内容。重复的原因是首屏图片存在不同尺寸的占位图、缩略图共用同一份源图链接,或者懒加载的占位属性和实际src属性重复抓取。
  • 解决方法分两种:
    1. 优先用Unsplash官方开放的API,注册开发者密钥后调用接口即可获取结构化的图片数据,支持分页拉取,没有反爬限制,也不会出现重复内容,比直接爬页面效率高很多。
    2. 如果要爬页面,可以使用Selenium、Playwright这类模拟浏览器的工具,模拟用户向下滚动页面触发懒加载,等新内容渲染完成后再提取链接;同时把提取到的链接存入set结构自动去重,还要注意抓取data-src这类懒加载属性里的真实图片链接,不要只抓src属性。

问题3 动态加载内容的请求规则

普通的requests.get()发送的是静态HTTP请求,只会下载服务器返回的初始HTML文件,不会执行页面内的JavaScript代码。需要滚动才加载的内容都是JS触发动态请求拉取的,在初始HTML返回时这些内容还不存在,所以不会被一同下载到本地。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 01:54:04