从BeautifulSoup使用nextSibling不会输出任何内容

Ton*_*ark 5 python beautifulsoup

我正在尝试在以下应用上使用BeautifulSoup:

<h4>Hello<br /></h4>
<p><img src="http://url.goes.here" alt="hiya" class="img" />May 28, 1996</p>
Run Code Online (Sandbox Code Playgroud)

对于此示例,假设我将<h4>标签保存在变量中tag。当我输入时print tag.text,输出是Hello,如预期的那样。

但是,当我使用print tag.nextSibling输出时什么也没有。当我键入内容时print tag.nextSibling.nextSibling,输出为<p><img src="http://url.goes.here" alt="hiya" class="img" />May 28, 1996</p>。到底是怎么回事?为什么在示例中我必须加倍使用.nextSibling才能获得<p>标签?这始终是一个错误。

Ton*_*ark 4

显然,.nextSibling抓取白色文本。<h4>因此,在我正在使用的实际页面中,和标签之间有白色文本<p>,这就是我必须加倍的原因。

证据

写作:

print tag.__class__
print tag.nextSibling.__class__
print tag.nextSibling.nextSibling.__class__
Run Code Online (Sandbox Code Playgroud)

产量:

<class 'BeautifulSoup.Tag'>
<class 'BeautifulSoup.NavigableString'>
<class 'BeautifulSoup.Tag'>
Run Code Online (Sandbox Code Playgroud)