我想使用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命令来解决这个问题,但这看起来真的很糟糕,有人有更好的解决方案吗?
答案 0 :(得分:9)
container.children
是一个提供Tag
个对象的生成器,因此您可以正常操作它们。
你也可以尝试element.find_all(..., recursive=False)
来寻找具有某些特征的元素的直接孩子。