美丽的汤在html页面的其他标签之间找到所有出现的标签

时间:2016-02-27 20:01:20

标签: python html python-2.7 web-scraping beautifulsoup

我的网页包含以下标记:

('span', {'class' : 'block-title'})
('div', {'class' : 'object-title'})
('span', {'class' : 'data-value'})

我可以使用for循环遍历页面,并使用下面的

提取我需要的数据
for a in soup.find_all('span', {'class' : 'block-title'}):
print a

for b in soup.find_all('div', {'class' : 'object-title'})
print b 

for c in soup.find_all('span', {'class' : 'data-value'})
print c

我遇到的问题是它在三个单独的列表中给我它们我需要代码来查找第一次出现的块标题然后按顺序出现所有出现的对象标题和数据值,然后是下一个块-title等我认为这可能是找到下一个或找到兄弟姐妹,但正在寻找一些帮助/建议

非常感谢

1 个答案:

答案 0 :(得分:2)

您可以使用首次find_all()来电的结果,并通过将列表传递到下一个find_all()来调查其中的所有相关标签。像这样:

for a in soup.find_all('span', {'class' : 'block-title'}):
    print a
    for b in print a.find_all(['div', 'span'], {'class' : ['object-title', 'data-value']}):
        print b