Select 所有 div 兄弟姐妹使用 BeautifulSoup
Select all div siblings by using BeautifulSoup
我有一个 html 文件,其结构如下:
<div>
</div
<div>
</div>
<div>
<div>
</div>
<div>
</div>
<div>
</div>
<div>
<div>
<div>
</div>
</div>
我想 select 所有兄弟姐妹 div 没有 select 嵌套 div 在第三和第四块。如果我使用 find_all()
我得到所有 divs.
您可以找到父元素的直接个子元素:
soup.select('body > div')
获取顶级 body
标签下的所有 div
元素。
你也可以先找到div
,然后用Element.find_next_siblings()
:
抓取所有匹配的兄弟姐妹
first_div = soup.find('div')
all_divs = [first_div] + first_div.find_next_siblings('div')
或者您可以使用 element.children
generator 并过滤那些:
all_divs = (elem for elem in top_level.children if getattr(elem, 'name', None) == 'div')
其中 top_level
是直接包含这些 div
元素的元素。
我有一个 html 文件,其结构如下:
<div>
</div
<div>
</div>
<div>
<div>
</div>
<div>
</div>
<div>
</div>
<div>
<div>
<div>
</div>
</div>
我想 select 所有兄弟姐妹 div 没有 select 嵌套 div 在第三和第四块。如果我使用 find_all()
我得到所有 divs.
您可以找到父元素的直接个子元素:
soup.select('body > div')
获取顶级 body
标签下的所有 div
元素。
你也可以先找到div
,然后用Element.find_next_siblings()
:
first_div = soup.find('div')
all_divs = [first_div] + first_div.find_next_siblings('div')
或者您可以使用 element.children
generator 并过滤那些:
all_divs = (elem for elem in top_level.children if getattr(elem, 'name', None) == 'div')
其中 top_level
是直接包含这些 div
元素的元素。