Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python BeautifulSoup不在已找到的标记中搜索递归_Python_Html_Python 2.7_Beautifulsoup_Html Parsing - Fatal编程技术网

Python BeautifulSoup不在已找到的标记中搜索递归

Python BeautifulSoup不在已找到的标记中搜索递归,python,html,python-2.7,beautifulsoup,html-parsing,Python,Html,Python 2.7,Beautifulsoup,Html Parsing,我现在正在处理维基百科中包含列表的文章 我现在拿到那篇文章了。为了获得ul(或table)标记,我使用了BeautifulSoup(python2.7)。 我发现文章的内容包含在“mw内容文本”标签中: article = soup.find('div', {'id':'mw-content-text'}) lists = article.find_all('ul') 这就是我获取列表的方式,它在这个例子中起作用。但是有些文章的列表包含其他列表,我不希望BS跟踪这些子列表。当它发现一个标签时,

我现在正在处理维基百科中包含列表的文章

我现在拿到那篇文章了。为了获得ul(或table)标记,我使用了BeautifulSoup(python2.7)。 我发现文章的内容包含在“mw内容文本”标签中:

article = soup.find('div', {'id':'mw-content-text'})
lists = article.find_all('ul')
这就是我获取列表的方式,它在这个例子中起作用。但是有些文章的列表包含其他列表,我不希望BS跟踪这些子列表。当它发现一个标签时,我如何说我不必再深入查看

参数recursive不是我想要的,因为列表可能在div标记中


注意:用户正在寻找相同的解决方案,但没有得到正确的答案:“有没有办法让BS不递归搜索已找到的标签?”

一种可能的方法是使用a搜索
ul
标签。对于找到的每个
ul
标签,使用以下方法检查是否没有找到父
ul
标签:

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