XPath text()返回额外空值:如何排除td中的i标签?
解决Google Sheets抓取时排除i标签导致的空单元格问题
针对你遇到的td第二列包含i标签,抓取后出现空单元格的问题,有两种可行的XPath调整方案:
方案1:过滤空白文本节点
直接在原有XPath的text()后添加过滤条件,只保留非空白的文本内容,避免空节点被解析成空单元格://div[contains(@class, 'ranking-data')]//tr[th//text()[contains(., 'TIN')]]/td[2]/text()[normalize-space()]normalize-space()会自动过滤掉纯空白(空格、换行、制表符)的文本节点,只返回有效内容。方案2:明确排除i标签的节点
精准定位td下除i标签外的所有子节点文本,彻底排除i标签的影响://div[contains(@class, 'ranking-data')]//tr[th//text()[contains(., 'TIN')]]/td[2]/node()[not(self::i)]/text()node()[not(self::i)]会筛选出td下所有不是i标签的子节点,再提取它们的文本内容。
两种方案都能解决Google Sheets中出现空单元格的问题,优先推荐方案1,写法更简洁且适配性更强。
内容的提问来源于stack exchange,提问作者curropar
相关产品推荐
相关产品推荐

