py3 beautifulsoup查找没有标签的文字节点
时间: 2024-02-21 14:01:58 浏览: 105
在 `beautifulsoup` 中,可以使用 `NavigableString` 类来表示 HTML 中没有标签的纯文本节点。可以通过 `type()` 函数来判断对象是否为 `NavigableString` 类型。
下面是一个简单的例子,演示如何查找没有标签的文本节点:
```python
from bs4 import BeautifulSoup, NavigableString
html = '''
<html>
<body>
<p>Hello, <b>World!</b></p>
<p>This is a <i>test</i>.</p>
<div>Some <span>text</span> here.</div>
</body>
</html>
'''
soup = BeautifulSoup(html, 'html.parser')
for element in soup.descendants:
if isinstance(element, NavigableString) and element.strip():
print(element.strip())
```
输出结果为:
```
Hello,
World!
This is a
test.
Some
text
here.
```
在这个例子中,我们使用 `descendants` 属性来遍历 HTML 文档中的所有节点,然后判断每个节点是否为 `NavigableString` 类型以及是否包含文本内容。注意,这里通过 `strip()` 方法来去除文本节点中的空白字符。
阅读全文