如何用Selenium仅提取表格中Change (Pts)列的带负值数据
解决XPath提取单列负值数据的问题
要只提取Change (Pts)列中带负值(class含red)的数据,你需要在原有XPath基础上,进一步定位到该列对应的节点位置,以下是两种可行的调整方案:
方式一:通过固定节点索引定位
如果Change (Pts)列的li元素在每个数据行中是固定位置(比如第2个),直接指定索引即可精准提取://*[@id="div_bseindices"]/div/div/div/ul/li[contains(@class,'alignR red') and position()=2]方式二:通过父容器关联定位
若列位置不固定,可结合数据行的父容器结构锁定目标列。假设每个数据行是独立的ul容器,先定位到行再取对应列://*[@id="div_bseindices"]/div/div/div/ul/li[contains(@class,'alignR red') and parent::ul/li[text()='Change (Pts)']]注:这个表达式需根据实际DOM结构微调,核心是通过列标题节点关联到对应的数据列。
关键说明
position()=N:强制筛选父节点下第N个li元素,确保只取目标列的内容- 若数据行有专属类名(比如
data-row),可加入到XPath中缩小范围,提升匹配精度://*[@id="div_bseindices"]/div/div/div/ul[contains(@class,'data-row')]/li[contains(@class,'alignR red') and position()=2]
内容的提问来源于stack exchange,提问作者tara goswami
相关产品推荐
相关产品推荐

