我目前正在使用包含列表的维基百科文章。
我现在收到了文章List of Archdeacons in the Diocese in Europe。为了获得ul(或表)标签,我使用BeautifulSoup(Python 2.7)。 我发现文章的内容包含在&mww-content-text'标记:
article = soup.find('div', {'id':'mw-content-text'})
lists = article.find_all('ul')
这就是我如何获得列表并且它正在为这个例子工作。但有些文章列表中包含其他列表,我不希望BS跟踪这些子列表。我怎么说BS在发现标签时我不必深入了解?
参数 recursive 不是我想要的,因为列表可能在div标签中。
PS:This用户正在寻找相同的解决方案,但得不到正确的答案:"有没有办法让BS不能递归搜索已经找到的标签?'&# 34;
答案 0 :(得分:1)
一种可能的方法是使用function搜索ul
标记。对于找到的每个ul
代码,请检查是否找不到使用find_parent()
找到的父ul
个代码:
article.find_all(lambda x: x.name == 'ul' and x.find_parent("ul") is None)