Мульти найти красивый суп - PullRequest
0 голосов
/ 25 июня 2018

У меня есть список элементов вроде этого: (количество списков элементов может варьироваться)

<h3>My title</h3>
<a href="http://myurl.com">http://myurl.com</a>
<span class="t">text</span>

<h3>My title</h3>
<a href="http://myurl.com">http://myurl.com</a>
<span class="t">text</span>

...

Как с красивым супом я мог получить все эти данные, чтобы я мог поместить все их в список, чтобы получить такой результат: [{'title': h3, 'url': url, 'title': title}, {'title': h3, 'url': url, 'title': title}, ...]?

спасибо

1 Ответ

0 голосов
/ 25 июня 2018

Вы можете перебирать содержимое вашего HTML следующим образом (при условии, что ваши данные хранятся в html_data):

import bs4

soup = BeautifulSoup(html_data)
my_list = []
for i in range(len(soup.body.contents), step=3):
    my_list.append({'title1': soup.body.contents[i], 'url': soup.body.contents[i+1], 'title2': soup.body.contents[i+2]})

Это, конечно, работает только при условии, что ваши данные находятся на одном уровнеи не вложен никак.Если это не так, то вы должны опубликовать действительный кусок ваших тестовых данных и их структуру.

...