如何用XPath选择币安涨幅榜表格第二列文本字段
解决方案
1. 单独选中表格第二列的所有文本
你之前的XPath选中整行,大概率是混淆了行(<tr>)和单元格(<td>)的定位对象。要精准选中第二列文本,需要先定位每行的第二个单元格,再提取其中内容:
- 若表格行带
data-type="table-tr"属性、单元格带data-type="table-td"属性,用以下XPath提取第二列所有文本节点://*[contains(@data-type, 'table-tr')]//*[contains(@data-type, 'table-td')][2]//text() - 若需要获取单元格内的完整合并文本(比如交易对全称,避免拆分的零散文本节点),可使用
string()函数://*[contains(@data-type, 'table-tr')]//*[contains(@data-type, 'table-td')][2]/string()
2. 仅获取第一、二行的第二列文本
通过position()函数限制行的范围,就能只提取前两行的目标列内容:
- 提取文本节点:
(//*[contains(@data-type, 'table-tr')])[position() <= 2]//*[contains(@data-type, 'table-td')][2]//text() - 获取完整合并文本:
(//*[contains(@data-type, 'table-tr')])[position() <= 2]//*[contains(@data-type, 'table-td')][2]/string()
补充说明
如果币安页面DOM结构有变化(比如单元格用其他标签/属性标记),可通过浏览器开发者工具(F12)调整定位条件:
- 右键目标文本(如RIF)选择「检查」
- 查看该文本父单元格的属性(比如
role="gridcell"或特定class),替换XPath中对应的定位规则即可
内容的提问来源于stack exchange,提问作者Mubashar Ali
相关产品推荐
相关产品推荐

