我有一个下面的html:
<span class="ui-cfs-sn-l" xpath="1">
ABC
<span class="ui-cfs-txt">°⌃</span>
</span>
我使用以下 python 代码来提取返回 ABC°⌃
的文本element = driver.find_element(by=By.XPATH, value="//span[@class='ui-cfs-sn-l']")
result = element.text
有没有办法只提取内部跨度之前的文本?解决方案应返回 ABC
您可以使用 Python BeautifulSoup4 库来实现此目的。
Beautiful Soup 是一个可以轻松从网页中抓取信息的库。它位于 HTML 或 XML 解析器之上,提供用于迭代、搜索和修改解析树的 Pythonic 习惯用法。
这是一个例子:
from bs4 import BeautifulSoup
html_content = '<span class="ui-cfs-sn-l" xpath="1">ABC<span class="ui-cfs-txt">°⌃</span></span>'
soup = BeautifulSoup(html_content, features='html.parser')
desired_content = soup.findAll('span', {'class': 'ui-cfs-sn-l'})[0].contents[0]
print(desired_content) # outputs 'ABC'