1

我想使用 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)然后找到命令来解决这个问题,但这看起来真的很可怕,有人有更好的解决方案吗?

4

1 回答 1

9

container.children是一个提供Tag对象的生成器,所以你可以正常对它们进行操作。

您可能还想尝试element.find_all(..., recursive=False)寻找具有某些特征的元素的直接子代。

于 2013-10-21T10:56:24.897 回答