如何只获取 BeautifulSoup 中标签的内部文本,不包括嵌入的标签?
How to only get inner text of a tag in BeautifulSoup, excluding the embedded one?
例如,
<ul>
<li>
<b>Hey, sexy!</b>
Hello
</li>
</ul>
我只想要 li
标签中的 'Hello'。
如果我使用 soup.find("ul").li.text
它也包括 b
标签。
您可以使用 extract()
,这将从树中删除标签。
你的情况:
soup.find("ul").b.extract() # removes the <b> tag
soup.find("ul").li.text # contents of <li> without <b>
您可以像这样使用 find
函数
from bs4 import BeautifulSoup
html = '''<ul><li><b>Hey, sexy!</b>Hello</li></ul>'''
soup = BeautifulSoup(html)
print soup.find('li').find(text=True, recursive=False)
例如,
<ul>
<li>
<b>Hey, sexy!</b>
Hello
</li>
</ul>
我只想要 li
标签中的 'Hello'。
如果我使用 soup.find("ul").li.text
它也包括 b
标签。
您可以使用 extract()
,这将从树中删除标签。
你的情况:
soup.find("ul").b.extract() # removes the <b> tag
soup.find("ul").li.text # contents of <li> without <b>
您可以像这样使用 find
函数
from bs4 import BeautifulSoup
html = '''<ul><li><b>Hey, sexy!</b>Hello</li></ul>'''
soup = BeautifulSoup(html)
print soup.find('li').find(text=True, recursive=False)