使用Selenium爬取VPS股票筛选器买卖盘价格遇报错及空数据问题求助
错误原因分析
- 首次报错
TimeoutException:目标站点不存在ID为ptifrmtgtframe的iframe,你直接套用了其他站点的爬取逻辑,等待不存在的节点自然会触发超时。 - 第二次获取到空tbody:页面的交易数据由JS异步请求加载,调用
driver.get()后立刻查找元素时,数据还没完成渲染,所以只能拿到未填充内容的空tbody节点。
可行爬取代码
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 # 如需指定chromedriver路径则导入Service类 # from selenium.webdriver.chrome.service import Service options = webdriver.ChromeOptions() # 需要无头模式时取消下一行注释 # options.add_argument("--headless=new") # 规避反爬检测的配置,避免被站点识别为自动化工具 options.add_argument("--disable-blink-features=AutomationControlled") options.add_experimental_option("excludeSwitches", ["enable-automation"]) options.add_experimental_option("useAutomationExtension", False) # 如指定chromedriver路径则用下行初始化 # s = Service('C:/Users/quank/PycharmProjects/pythonProject2/chromedriver.exe') # driver = webdriver.Chrome(service=s, options=options) driver = webdriver.Chrome(options=options) url = 'https://banggia.vps.com.vn/chung-khoan/derivative-VN30' driver.get(url) # 显式等待最多等20秒,直到tbody内出现交易数据行渲染完成 wait = WebDriverWait(driver, 20) wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "tbody.price-table-content tr"))) # 获取填充完成后再提取内容 tbody = driver.find_element(By.CSS_SELECTOR, "tbody.price-table-content") # 打印完整tbody内容 print(tbody.get_attribute('outerHTML')) # 提取买盘卖盘数据示例 rows = tbody.find_elements(By.TAG_NAME, "tr") for row in rows: cells = row.find_elements(By.TAG_NAME, "td") # 按需提取对应列的Bid、Ask价格即可 row_data = [cell.text.strip() for cell in cells if cell.text.strip()] print(row_data) driver.quit()
同类JS动态站点爬取要点
- 爬取前先确认页面结构:打开浏览器F12开发者工具的元素面板,确认实际要提取的节点真实ID、类名,确认是否存在iframe嵌套,不要直接照搬其他站点的定位逻辑。
- 优先使用显式等待:不要用
time.sleep()固定时长等待,使用WebDriverWait指定等待条件(比如节点出现、可见等),既可以提高爬取效率,也能避免网络波动导致的加载未完成问题。 - 反爬适配:大部分金融类站点都有反爬机制,添加对应的自动化特征屏蔽配置可以降低被拦截的概率。
- 进阶优化方案:熟练后可以直接通过F12网络面板筛选XHR/Fetch请求,找到站点直接返回交易数据的接口,直接调用接口获取数据效率比Selenium渲染页面效率更高、稳定性更好。
内容的提问来源于stack exchange,提问作者Quan Khuc
相关产品推荐
相关产品推荐

