Python `bs4.BeautifulSoup.get_text()` - 仅从直接级别获取文本

wol*_*pha 5 python beautifulsoup

假设我有一个 HTML 片段,并且我只想get_text从直接级别开始:

from bs4 import BeautifulSoup
s = "<div><p><strong>College Type:</strong> \r\nPrivate Un-aided\r\n</p></div>"
soup = BeautifulSoup(s, 'lxml')
print soup.find('p').get_text()
Run Code Online (Sandbox Code Playgroud)

哪个打印:

College Type: 
Private Un-aided
Run Code Online (Sandbox Code Playgroud)

但我只想:

Private Un-aided
Run Code Online (Sandbox Code Playgroud)

位于立即<p>标记中 - 忽略子标记中的文本<strong>

use*_*054 4

您可以在 <p> 标记内搜索文本内容,并声明您不想递归到子标记:

>>> print soup.find('p').find(text=True, recursive=False)

Private Un-aided
Run Code Online (Sandbox Code Playgroud)