BeautifulSoup不会在已找到的标签

时间:2015-05-12 13:19:38

标签: python html python-2.7 beautifulsoup html-parsing

我目前正在使用包含列表的维基百科文章。

我现在收到了文章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;

1 个答案:

答案 0 :(得分:1)

一种可能的方法是使用function搜索ul标记。对于找到的每个ul代码,请检查是否找不到使用find_parent()找到的父ul个代码:

article.find_all(lambda x: x.name == 'ul' and x.find_parent("ul") is None)