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

使用BeautifulSoup提取a标签内img的src仅获按钮资源该如何解决

问题原因
  • 网站采用懒加载机制优化加载速度,非首屏的卡牌图片真实地址不会直接存在src属性中,而是存放在data-src等自定义属性中,仅当页面滚动到对应区域时才会通过JS把地址赋值给src,你当前仅读取src属性只能拿到已经完成加载的少量图片。
  • 若你使用requests等静态请求工具获取页面源码,部分动态渲染的卡牌节点可能未被加载到解析用的soup对象中,也会导致提取结果不全。
修复方案

步骤1:调整属性读取逻辑,兼容懒加载场景

修改代码同时读取常见的懒加载属性,同时补全相对路径为完整可访问的URL:

for a in soupimages.find_all('a'):
    if a.img:
        img_url = None
        # 按优先级读取图片地址
        if a.img.has_attr('src'):
            img_url = a.img['src']
        elif a.img.has_attr('data-src'):
            img_url = a.img['data-src']
        elif a.img.has_attr('data-original'):
            img_url = a.img['data-original']
        # 补全相对路径
        if img_url and not img_url.startswith('http'):
            img_url = 'https://www.pokellector.com' + img_url
        if img_url:
            print(img_url)

步骤2:确认页面源码完整性

如果调整后还是拿不到全部图片,说明静态请求无法获取完整的动态渲染节点,换用Selenium、Playwright等支持JS渲染的工具,模拟浏览器打开页面等待所有节点加载完成后,再提取页面源码做解析即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:06:01