多找美汤

Multi find beautiful soup

我有一个这样的项目列表:(项目列表的数量可能会有所不同)

<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': h3, 'url': url, 'title': 标题}, ...] ?

谢谢

您可以像这样遍历 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]})

这当然只有在您的数据位于同一级别并且没有以任何方式嵌套的前提下才有效。如果不是,那么您应该 post 测试数据的有效块及其结构。