如何从BeautifulSoup中的项目列表中获取文本

时间:2019-07-18 14:48:38

标签: python beautifulsoup

因此,我试图从网站上抓取一些数据,但我无法仅从html中获取文本,因此我需要提取数据并将其放在CSV文件的一列中。

我尝试了不同的步骤,例如循环遍历索引,但是,如果这样做,我将无法在单个列中获得完整的创始人列表(如果有多个)。

    for panel in panel.find_all('p', class_='content-group'):
            fondateur = panel.find_next_siblings('b')
            print(fondateur)

这就是我得到的:

    [<b>Alexandre Bilger</b>, <b>Fabrice de Salaberry</b>, <b>Olivier Gaunet</b>, <b>Cyril De Maleprade</b>]
    [<b>Anne OSDOIT</b>, <b>Gerard HASCOET</b>]
    [<b>Claude Avisse</b>]
    [<b>Nicolas NAIGEON</b>]
    [<b>Jérôme Varnier</b>, <b>Romain Melloul</b>, <b>Vincent Oliveira</b>]
    [<b>Clémentine GUYON </b>, <b>Clémence COURSIMAULT </b>]
    [<b>Maxim  Romain</b>]

我希望的只是名字。

2 个答案:

答案 0 :(得分:0)

自从我使用BS以来已有一段时间了,但是它使用find_next_siblings为您返回列表。

看起来您可以循环遍历。

尝试以下方法:

for panel in panel.find_all('p', class_='content-group'):
    for name in panel.find_next_siblings('b')
        print(name)

您仍将在其周围留有粗体标签,这可能是您下一步的学习。

答案 1 :(得分:0)

似乎您已经抓取了正确的元素。

从这里开始,您只需要在每个元素上使用getText()即可获取文本内容,并使用列表理解功能“平化”列表。

尝试一下:

names = [fondateur.getText() for panel in panel.find_all('p', class_='content-group') for fondateur in panel.find_next_siblings('b')]

print(names)