使用Python+Selenium如何获取无限滚动网站的全部图片alt属性及链接?
无限滚动相册全量图片加载方案
- 实现逻辑
针对无分页、滚动触发懒加载的页面,通过反复模拟滚动到底部、判断页面高度是否变化,即可确认所有内容是否加载完成:
- 页面首屏加载完成后,先记录初始页面总高度
- 模拟滚动到页面底部,等待资源加载完成
- 对比滚动后的页面高度和上一次记录的高度,若高度一致则说明无新内容加载,终止滚动;若高度变化则更新高度记录,重复滚动操作
- 代码实现(Python + Selenium 示例)
from selenium import webdriver import time # 初始化浏览器驱动 driver = webdriver.Chrome() driver.get("https://ibb.co/album/D5f4bg") # 等待首屏加载完成 time.sleep(3) # 记录初始页面高度 last_height = driver.execute_script("return document.body.scrollHeight") while True: # 滚动到页面底部 driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") # 等待图片加载,可根据网络情况调整时长 time.sleep(2) # 计算新的页面高度 new_height = driver.execute_script("return document.body.scrollHeight") # 高度无变化说明所有内容加载完成 if new_height == last_height: # 额外加一次校验避免网络波动导致误判 time.sleep(2) confirm_height = driver.execute_script("return document.body.scrollHeight") if confirm_height == last_height: break last_height = new_height # 此处可执行你现有的图片属性提取逻辑
- 注意事项
- 等待时长可根据自身网络环境调整,避免加载未完成就判断高度导致提前终止循环
- 若站点有反爬机制,可在滚动步骤中加入随机等待时长、模拟鼠标移动等操作降低被拦截概率
内容的提问来源于stack exchange,提问作者user3577419
相关产品推荐
相关产品推荐

