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

Selenium点击加载更多按钮后无法获取新评论问题求助

问题解决思路与修正代码

核心问题分析

  1. 未等待新评论加载完成:点击按钮后立刻获取元素,此时新评论还未渲染,只能拿到之前已加载的内容。
  2. 定位器不稳定:用li[14]这种固定索引的XPATH定位按钮,页面结构变动时会直接失效,应该基于按钮文本或专属属性定位。
  3. 未实现循环加载:当前代码仅点击一次按钮,无法加载所有评论内容。

修正后的代码

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

browser = webdriver.Chrome(service=webdriver_service, options=chrome_options)
url = 'https://lectricebikes.com/pages/reviews' 
browser.get(url) 

# 存储所有评论的总列表
all_reviews = []

while True:
    # 等待当前页面所有评论渲染完成
    current_reviews = WebDriverWait(browser, 10).until(
        EC.presence_of_all_elements_located((By.CLASS_NAME, 'stamped-review-content-body'))
    )
    # 提取评论文本并去重,避免重复抓取已加载内容
    for review in current_reviews:
        review_text = review.text.strip()
        if review_text not in all_reviews:
            all_reviews.append(review_text)
    
    try:
        # 滚动到加载按钮位置,确保按钮处于可点击状态
        load_more_btn = WebDriverWait(browser, 10).until(
            EC.element_to_be_clickable((By.XPATH, '//a[contains(text(), "Load More Reviews")]'))
        )
        browser.execute_script("arguments[0].scrollIntoView(true);", load_more_btn)
        time.sleep(1)  # 给页面滚动后的渲染留缓冲时间
        load_more_btn.click()
        # 等待新评论加载完成:通过评论数量是否增加判断
        WebDriverWait(browser, 10).until(
            lambda driver: len(driver.find_elements(By.CLASS_NAME, 'stamped-review-content-body')) > len(all_reviews)
        )
    except Exception:
        print("无更多评论可加载,或加载按钮已消失")
        break

# 输出所有抓取到的评论
for idx, review in enumerate(all_reviews, 1):
    print(f"评论{idx}:{review}")

browser.quit()

关键优化说明

  • 循环加载逻辑:用while True循环持续点击加载按钮,直到按钮无法找到或点击,确保获取全部评论。
  • 稳定定位按钮:通过按钮文本内容定位,避免固定索引带来的兼容性问题。
  • 等待新内容加载:用评论数量变化作为判断条件,确保新评论完全渲染后再进行下一轮抓取。
  • 去重处理:避免重复添加已经抓取过的评论内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:01:24