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

Selenium Python仅能定位首个元素,如何获取论坛全部回帖?

问题:Selenium Python 无法获取论坛回帖内容

这是我昨日发布的《Selenium Python unable to find web element》的后续问题。借助之前的解答,我已能获取论坛帖子的首条内容,但无法获取后续回帖。

可成功获取首条帖子内容的代码

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.chrome.options import Options  # 补充原代码缺失的导入

url = "https://www.thestudentroom.co.uk/showthread.php?t=7263973"

def get_posts(url):
    options = Options()
    options.add_argument("--headless")
    options.headless = True
    driver = webdriver.Chrome()
    driver.maximize_window()
    wait = WebDriverWait(driver, 5)
    driver.get(url)
    posts = wait.until(EC.presence_of_element_located((By.XPATH, f"//div[@class='styles__PostContent-sc-1r7c0ap-3 kylDhV']/span")))
    print(posts.text)
    driver.quit()

SR_posts = get_posts(url = url)
SR_posts

尝试获取回帖的代码(未成功)

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium import webdriver
from selenium.webdriver.chrome.options import Options  # 补充原代码缺失的导入

url = "https://www.thestudentroom.co.uk/showthread.php?t=7263973"

def get_posts(url):
    options = Options()
    options.add_argument("--headless")
    options.headless = True
    driver = webdriver.Chrome()
    driver.maximize_window()
    wait = WebDriverWait(driver, 5)
    driver.get(url)
    #posts = wait.until(EC.presence_of_element_located((By.XPATH, '//*[contains(@class, "styles__PostContent-sc-1r7c0ap-3 kylDhV")]')))
    #posts = wait.until(EC.presence_of_all_elements_located((By.XPATH, '//*[contains(@class, "styles__PostContent-sc-1r7c0ap-3 kylDhV")]')))
    posts = wait.until(EC.presence_of_all_elements_located((By.XPATH, '//*[contains(@id, "post9")]/div[1]/div/span')))
    driver.quit()
    return posts.text

SR_posts = get_posts(url = url)
SR_posts

我尝试过多种定位变体,注意到所有回帖的id均包含'post9',因此尝试使用contains(@id, "post9")进行定位,但始终出现报错、返回空列表或仅获取首条帖子的情况,希望得到帮助。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:45:37