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

如何解决抓取Vogue网站Met Gala 2021红毯图片描述返回空结果的问题

问题原因
  • 代码存在语法错误:第二次调用find_elements_by_css_selector定位元素时,类选择器遗漏了前置.符号,无法匹配到对应类名的元素。
  • 站点懒加载限制:该画廊采用懒加载逻辑,仅当前可视区域内的slide会加载完整文本内容,未触发展示的元素文本属性为空。
  • 选择器精准度不足:目标描述文本实际存储在.gallery-slide-caption__dek-container的子<p>标签中,直接定位父容器容易出现空文本问题。
修复方案
  1. 修正选择器语法,补充类选择器前置.
  2. 增加滑动触发懒加载逻辑,遍历所有slide触发内容加载
  3. 优化选择器直接定位子<p>标签,提升抓取稳定性
修复后代码示例
import pprint
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

detail_looks = []
# 遍历所有slide触发懒加载
for look in list_looks:
    # 滚动到当前元素触发内容加载
    driver.execute_script("arguments[0].scrollIntoView({block: 'center'});", look)
    try:
        # 等待文本元素加载完成再取值
        title = WebDriverWait(look, 2).until(
            EC.presence_of_element_located((By.CSS_SELECTOR, ".gallery-slide-caption__dek-container p"))
        ).text.strip()
    except:
        title = ""
    detail_looks.append({"title": title})

pprint.pprint(detail_looks[:5])
优化建议

可直接提取页面预加载的全局JSON数据获取所有描述内容,无需遍历DOM,抓取效率和稳定性更高。

内容的提问来源于stack exchange,提问作者G.FRL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 16:27:00