Beautifulsoup:如何在其他元素之间获取元素

时间:2011-03-26 03:00:24

标签: python beautifulsoup web-scraping

HTML:

<h2>...</h2>
<p>...</p>
<p>...</p>
<p>...</p>
<h2>...</h2>
<p>...</p>
<p>...</p>
<p>...</p>
<p>...</p>

预期结果:

<p>...</p>
<p>...</p>
<p>...</p>

我的意思是,获取h2元素之间的所有内容

2 个答案:

答案 0 :(得分:1)

每个元素都有一个nextSibling method,所以你可以得到第一个h2元素,然后遍历下一个兄弟,直到你点击第二个元素。

伪代码(假设firstElem是h2元素):

p_tags = []
next = firstElem.nextSilbing
while next.name != "h2":
  p_tags.append(next)
  next = next.nextSibling

答案 1 :(得分:1)

您还可以使用soup.h2.findNextSiblings('p'),其中soup是您的BeautifulSoup个实例。