BeautifulSoup寻找特定的孩子

时间:2013-10-21 10:46:24

标签: python beautifulsoup elements children

我想使用BeautifulSoup在子元素中搜索特定属性,我可以使用下面的方法看到每个子元素都是一个字符串(child ['value']给我“字符串索引必须是整数”),不允许基于属性选择或返回那些属性,这是我需要做的事情。

def get_value(container):
    html_file = open(html_path)
    html = html_file.read()
    soup = BeautifulSoup(html)
    values = {}
    container = soup.find(attrs={"name" : container})
    if (container.contents != []):
        for child in container.children:
            value = unicode(child['value']) # i would like to be able to search throught these children based on their attributes, and return one or more of their values
return value

可能用另外的child_soup Beautifulsoup(child)和一个find命令来解决这个问题,但这看起来真的很糟糕,有人有更好的解决方案吗?

1 个答案:

答案 0 :(得分:9)

container.children是一个提供Tag个对象的生成器,因此您可以正常操作它们。

你也可以尝试element.find_all(..., recursive=False)来寻找具有某些特征的元素的直接孩子。