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

Python+Edge环境下Selenium无法获取Shopee全部目标元素求助

解决Shopee搜索页无法获取全部60个商品元素的方案

核心问题原因

Shopee搜索结果采用滚动懒加载机制,初始仅渲染30个商品,剩余30个需要触发页面滚动才会加载;另外WebDriver默认窗口过小可能导致页面无滚动条,无法触发加载逻辑。

具体解决步骤

  1. 调整浏览器窗口大小
    启动Edge驱动后先最大化窗口,确保页面出现滚动条:

    from selenium import webdriver
    from selenium.webdriver.edge.options import Options
    from selenium.webdriver.common.by import By
    import time
    
    options = Options()
    driver = webdriver.Edge(options=options)
    driver.maximize_window()  # 最大化窗口
    driver.get("https://shopee.vn/search?keyword=iphone&page=0&sortBy=sales")
    
  2. 模拟滚动到底部触发加载
    循环执行JavaScript滚动,直到商品数量达到60个或者滚动多次后停止:

    # 等待初始页面加载
    time.sleep(3)
    
    target_count = 60
    current_count = len(driver.find_elements(By.CSS_SELECTOR, "div[data-sqe='name']"))
    
    while current_count < target_count:
        # 执行JavaScript滚动到页面底部
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        # 等待加载新内容
        time.sleep(2)
        # 更新当前商品数量
        current_count = len(driver.find_elements(By.CSS_SELECTOR, "div[data-sqe='name']"))
        # 防止无限循环,最多滚动5次
        if current_count == len(driver.find_elements(By.CSS_SELECTOR, "div[data-sqe='name']")) and current_count < target_count:
            break
    
  3. 获取全部商品名称
    修正原CSS选择器,直接定位带[data-sqe='name']的元素:

    names = [elem.text for elem in driver.find_elements(By.CSS_SELECTOR, "div[data-sqe='name']")]
    print(f"共获取到{len(names)}个商品名称")
    print(names)
    
    driver.quit()
    
  4. 优化:用显式等待替代固定睡眠
    固定睡眠不够灵活,改用显式等待等待新元素加载:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    # 滚动后等待新元素出现
    WebDriverWait(driver, 10).until(
        lambda d: len(d.find_elements(By.CSS_SELECTOR, "div[data-sqe='name']")) > current_count
    )
    

额外注意事项

  • 若滚动后仍无法加载,可尝试模拟滚动到某个特定元素位置,而非直接到底部
  • 部分地区Shopee可能有反爬机制,可适当增加滚动间隔,避免触发限制

内容的提问来源于stack exchange,提问作者Luận Đặng Văn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:35:07