如何选择不同标签内的嵌套元素 单独提取span标签中的文本内容
提取方案
根据你给出的HTML结构,优先选择专用的HTML解析库实现,稳定性远高于正则匹配,下面给出不同环境下的可用方案:
Python 环境(基于BeautifulSoup4)
首先安装依赖:pip install beautifulsoup4 lxml
示例代码:
from bs4 import BeautifulSoup html = ''' <a> <tr data-range="one"> <td class="font-array"> <span>1</span> </td> </tr> <tr data-range="one"> <td class="font-array"> <span>2</span> </td> </tr> </a> ''' soup = BeautifulSoup(html, 'lxml') # 通过css选择器定位目标span target_spans = soup.select('td.font-array span') # 提取文本内容 texts = [span.get_text(strip=True) for span in target_spans] print(texts) # 输出结果:['1', '2']
浏览器端JavaScript环境
直接在页面控制台运行即可提取:
const targetSpans = document.querySelectorAll('td.font-array span') const texts = Array.from(targetSpans).map(span => span.textContent.trim()) console.log(texts) // 输出结果:['1', '2']
临时正则提取方案(仅适用于当前固定结构,不推荐通用场景)
如果只是单次临时提取,也可以用正则匹配分组内容,匹配规则为:<td class="font-array">\s*<span>(.*?)<\/span>
提取所有匹配结果的第一分组即可得到对应文本,注意该方法容错性极低,HTML结构稍有改动就会失效。
内容的提问来源于stack exchange,提问作者mike_lay944
相关产品推荐
相关产品推荐

