我正在解析和抓取的 HTML 具有以下代码:
<li> <span> 929</span> Serve Returned </li>
如何只提取 <li>
的文本节点? ,在这种情况下“返回服务”为Beautifulsoup
?
.string
自 <li>
起无效有一个子元素,并且 .text
返回 <span>
中的文本.
最佳答案
import bs4
html = r"<li> <span> 929</span> Serve Returned </li>"
soup = bs4.BeautifulSoup(html)
print soup.li.findAll(text=True, recursive=False)
这给出:
[u' ', u' Serve Returned ']
第一个元素是跨度之前的“文本”。此方法可以帮助您在任何子元素之前和之后(以及之间)找到文本。
关于python - 在 beautifulsoup4 中具有子元素的标签内提取文本节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29808016/