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

使用Selenium Python实现多页面(分页)文本提取

动态分页数据提取解决方案

针对你只能提取第一页数据的问题,可通过循环遍历分页按钮的方式自动处理所有页面数据,核心逻辑为:提取当前页数据 → 点击下一页按钮 → 重复操作直至无下一页可点击。

修改后的完整代码

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
from webdriver_manager.chrome import ChromeDriverManager
from selenium.common.exceptions import ElementNotInteractableException, StaleElementReferenceException, TimeoutException

def extract_current_page_data(driver):
    """提取当前页面目标数据"""
    WebDriverWait(driver, 50).until(EC.presence_of_element_located((By.ID, 'all-my-groups')))
    elements = driver.find_elements(By.XPATH, "//div[contains(@class, 'alias-wrapper sim-ellipsis sim-list--shortId')]")
    return [elem.text for elem in elements]

# 初始化浏览器
opts = webdriver.ChromeOptions()
opts.headless = True
driver = webdriver.Chrome(ChromeDriverManager().install())
base_url = "XYZ"
driver.maximize_window()
driver.get(base_url)
driver.set_page_load_timeout(50)

all_data = []

while True:
    # 提取当前页数据并汇总
    current_page_data = extract_current_page_data(driver)
    all_data.extend(current_page_data)
    # 打印当前页数据(可选)
    for item in current_page_data:
        print(item)
    
    try:
        # 等待下一页按钮可点击并点击,需根据实际分页按钮属性调整XPATH
        next_page_btn = WebDriverWait(driver, 10).until(
            EC.element_to_be_clickable((By.XPATH, "//button[contains(text(), '下一页') or contains(@class, 'pagination-next')]"))
        )
        next_page_btn.click()
        # 等待页面刷新,避免元素失效
        WebDriverWait(driver, 10).until(
            EC.staleness_of(driver.find_element(By.ID, 'all-my-groups'))
        )
    except (ElementNotInteractableException, StaleElementReferenceException, TimeoutException):
        # 无下一页时退出循环
        break

driver.quit()

# 打印所有提取的数据
print("\n所有提取的数据:")
for item in all_data:
    print(item)

关键说明

  • 函数封装:将单页数据提取逻辑封装,简化重复代码。
  • 循环控制:通过while True持续处理分页,捕获异常终止循环。
  • 元素等待:用WebDriverWait确保页面元素加载完成,避免因未刷新导致的元素丢失问题。
  • XPATH适配:需根据你截图里的分页按钮实际HTML属性(如文本、class)调整next_page_btn的XPATH,可通过浏览器开发者工具查看按钮属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:31:04