多找美丽的汤

时间:2018-06-25 16:31:56

标签: python beautifulsoup scrape

我有一个这样的商品清单:(商品清单的数量可以变化)

<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 :(得分:0)

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

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