如何使用Selenium WebDriver提取span与br标签间的单个文本节点?
提取span与br标签之间的"Orange"文本方法
嘿,要从你提供的这段HTML里提取span和br之间的"Orange"文本其实挺简单的,我给你准备了几种实用的实现方案,不管是后端抓取还是前端处理都能用上:
Python 实现(推荐用BeautifulSoup库)
BeautifulSoup是处理HTML的专业库,能可靠解析结构,避免正则的局限性。
- 先安装库(如果还没装的话):
pip install beautifulsoup4
- 代码示例:
from bs4 import BeautifulSoup # 你的HTML内容 html_content = '''<td role="grid cell"> <span class="ui-column-title">Fruits</span> <span id="all fruits"> "Orange" <br> 23 </span> </td>''' # 解析HTML soup = BeautifulSoup(html_content, 'html.parser') # 定位到id为"all fruits"的span标签 target_span = soup.find('span', id='all fruits') # 取span下第一个子节点(就是br前的文本),清理多余空格和引号 orange_text = target_span.contents[0].strip().strip('"') print(orange_text) # 输出结果:Orange
JavaScript 实现(前端浏览器环境)
如果是在网页前端直接处理,可以用原生DOM操作:
// 找到目标span元素 const targetSpan = document.getElementById('all fruits'); // 获取br之前的文本节点,清理空格和引号 const orangeText = targetSpan.childNodes[0].textContent.trim().replace(/^"|"$/g, ''); console.log(orangeText); // 输出结果:Orange
补充:正则表达式实现(不推荐)
虽然可以用正则快速匹配,但HTML结构稍有变动(比如空格、换行)就会失效,仅作为应急方案:
import re html_content = '''<td role="grid cell"> <span class="ui-column-title">Fruits</span> <span id="all fruits"> "Orange" <br> 23 </span> </td>''' # 匹配引号内的内容 match_result = re.search(r'<span id="all fruits"> "(.*?)" <br>', html_content) if match_result: orange_text = match_result.group(1) print(orange_text) # 输出结果:Orange
内容的提问来源于stack exchange,提问作者Joe Steve
相关产品推荐
相关产品推荐

