使用beautifulsoup提取换行符之间的文本(例如 标签)

我在较大的文档中包含以下HTML

<br />

Important Text 1

<br />

<br />

Not Important Text

<br />

Important Text 2

<br />

Important Text 3

<br />

<br />

Non Important Text

<br />

Important Text 4

<br />

我目前正在使用BeautifulSoup来获取HTML中的其他元素,但是我一直无法找到一种方法来获取<br

/>标记之间的重要文本行。我可以隔离并导航到每个<br />元素,但找不到找到介于两者之间的方法。任何帮助将不胜感激。谢谢。

回答:

如果只需要两个<br />标签之间的任何文本,则可以执行以下操作:

from BeautifulSoup import BeautifulSoup, NavigableString, Tag

input = '''<br />

Important Text 1

<br />

<br />

Not Important Text

<br />

Important Text 2

<br />

Important Text 3

<br />

<br />

Non Important Text

<br />

Important Text 4

<br />'''

soup = BeautifulSoup(input)

for br in soup.findAll('br'):

next_s = br.nextSibling

if not (next_s and isinstance(next_s,NavigableString)):

continue

next2_s = next_s.nextSibling

if next2_s and isinstance(next2_s,Tag) and next2_s.name == 'br':

text = str(next_s).strip()

if text:

print "Found:", next_s

但是也许我误解了你的问题?您对问题的描述似乎与示例数据中的“重要” /“不重要”不符,因此我不再赘述;)

以上是 使用beautifulsoup提取换行符之间的文本(例如 标签) 的全部内容, 来源链接: utcz.com/qa/414550.html

回到顶部