Selenium点击Etoro分页后无法获取更新的股票列表问题
解决Etoro纳斯达克板块分页后Selenium返回旧数据的问题
- 强制同步页面加载状态:点击分页按钮后,通过JS判断页面是否完全加载完成,避免在DOM未更新时获取数据。代码示例:
import time # 点击分页按钮操作 driver.find_element(By.XPATH, "//your-pagination-button-xpath").click() # 等待页面完全加载 while driver.execute_script("return document.readyState") != "complete": time.sleep(0.5) # 重新获取股票数据 stocks = driver.find_elements(By.XPATH, "//your-stock-item-xpath")
每次分页后重新定位元素:不要复用之前定义的元素集合变量,每次切换分页后都重新执行元素查找操作,确保拿到最新DOM中的元素。
基于新特征的显式等待:等待分页后的标志性元素状态变化,比如当前页码更新、列表出现新的股票项,确保页面内容确实更新后再抓取数据。示例:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # 点击分页按钮 driver.find_element(By.XPATH, "//your-pagination-button-xpath").click() # 等待目标页码显示(假设当前要切换到第2页) WebDriverWait(driver, 10).until( EC.text_to_be_present_in_element((By.XPATH, "//span[@class='current-page']"), "2") ) # 抓取最新股票列表 stocks = driver.find_elements(By.XPATH, "//your-stock-item-xpath")
- 清除DOM缓存(备选方案):如果上述方法无效,可尝试点击分页后刷新页面,再重新导航到目标分页,强制拉取最新数据:
# 点击分页按钮 driver.find_element(By.XPATH, "//your-pagination-button-xpath").click() driver.refresh() # 重新定位到目标分页(如果刷新后回到第一页) driver.find_element(By.XPATH, "//your-target-page-button-xpath").click()
内容的提问来源于stack exchange,提问作者Pham Ngoc Dinh
相关产品推荐
相关产品推荐

