html 在BeautifulSoup中获取两个div或a标签之间的数据

von4xj4u  于 2022-11-27  发布在  其他
关注(0)|答案(1)|浏览(206)

我正在做一个scraping项目,在这个项目中,两个不同的div和两个不同的a标签之间有一些数据,我们想获取它们之间的所有数据。
示例问题1:

<div id ="startID"></div>
<table>
    <tr>
        data
    </tr>
</table>

<p>Paragraph data</p>
<div id="endID"></div>

预期成果1:基本上它获取这两个div元素之间的所有内容。

<table>
    <tr>
        data
    </tr>
</table>

<p>Paragraph data</p>

我知道如何获取div标签内的数据,但获取两个div标签之间的数据是有问题的。

arknldoa

arknldoa1#

您可以使用.next_siblingstartID标签反覆撷取文字,直到找到endID标签为止。

startID = soup.find(id="startID")
endID = soup.find(id="endID")
data = []
for sibling in startID.next_siblings:
    if sibling == endID:
        break
    text = sibling.get_text(strip=True)
    if text:
        data.append(text)

输出:

> data

['data', 'Paragraph data']

相关问题