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

标签 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 元素之间的所有内容

最佳答案

每个元素都有一个 nextSibling method ,因此您可以只获取第一个 h2 元素,然后遍历下一个兄弟元素,直到找到第二个元素。

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

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

关于python - Beautifulsoup:如何在其他元素之间获取元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5440098/

相关文章:

python - 如何防止循环堆栈中的重复值?

python - 如何在交互式 python 中更新源文件(带有类)

python pip 损坏,无法修复或卸载

java - 在 HTMLUnit 中单击提交按钮()后无法到达新页面

python - Pandas :依赖于另一个值的列

python - Python 中的网页抓取动态内容

django - 一个 BeautifulSoup 文档可以使用多个过滤器吗?

python - 使用 BeautifulSoup 从使用 Python 的 AJAX 分页的站点中抓取

python - 限制报纸的 URL 输出

python - 无法使用 BeautifulSoup 从页面获取实际标记