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

如何用Selenium获取网页完整文本?求解决方案(附代码及页面链接)

解决方案:获取网页完整文本问题

问题分析

你当前的代码直接定位Virtual Games后的<p>元素,但页面中该段落大概率是折叠状态(从截图推测,长文本默认只显示部分,需点击展开按钮才能展示全部内容),导致text方法只能拿到截断后的内容。

可行解决步骤

  • 先定位并点击对应展开按钮,确保文本完全展示
  • 用显式等待确保元素加载完成,避免异步加载导致的定位失败
  • 滚动到目标元素区域,确保元素处于视口内,提升交互成功率

修改后的代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains

options = webdriver.ChromeOptions()
options.add_argument("--no-sandbox")
options.add_argument("--disable-gpu")
options.add_argument("--window-size=1920x1080")
options.add_argument("--disable-extensions")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
wait = WebDriverWait(driver, 15)

url = "https://www.askgamblers.com/online-casinos/reviews/casino-friday"
driver.get(url)

# 1. 滚动到Virtual Games区域,确保元素可见
virtual_games_section = wait.until(EC.presence_of_element_located((By.XPATH, "//h2[text()[contains(.,'Virtual Games')]]")))
ActionChains(driver).scroll_to_element(virtual_games_section).perform()

# 2. 查找并点击展开按钮(根据实际页面调整选择器,示例为常见的Read More按钮)
try:
    read_more_btn = wait.until(EC.element_to_be_clickable((By.XPATH, "//h2[text()[contains(.,'Virtual Games')]]/following-sibling::p/following-sibling::button[contains(text(),'Read More')]")))
    read_more_btn.click()
    # 等待文本展开,用长度阈值判断是否加载完成
    wait.until(lambda d: len(d.find_element(By.XPATH, "//h2[text()[contains(.,'Virtual Games')]]/following-sibling::p").text) > 100)
except:
    # 无展开按钮则跳过
    pass

# 3. 获取完整文本
full_text = wait.until(EC.presence_of_element_located((By.XPATH, "//h2[text()[contains(.,'Virtual Games')]]/following-sibling::p"))).text
print(full_text)

driver.quit()

额外说明

  • 若页面展开按钮的选择器和示例不符,需用浏览器开发者工具查看元素实际属性,调整XPATH
  • 如果文本是动态加载而非折叠,可延长等待时间,或检查是否有未完成的AJAX请求
  • 原代码存在重复导入模块的情况,建议清理冗余导入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:50:17