因此,我试图从网站上抓取一些数据,但我无法仅从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>]
我希望的只是名字。
答案 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)