首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我有一个标签在不同的层,我如何才能使它到同一层?

我有一个标签在不同的层,我如何才能使它到同一层?
EN

Stack Overflow用户
提问于 2022-01-25 22:30:29
回答 1查看 40关注 0票数 0

我在用蟒蛇汤。

我的html中有几个<div>层,在内部的<div>标记中有一个id=页面中断属性。我能写一个通用代码吗?我可以从外层获得*<div>*吗?所有*<div>*都是并行的。它们在同一层。

包含id=分页的div层可以位于第二个内层或第三个内层。我们无法从*<div>*层获得任何信息。

我不想得到最外层的div,而是有星号的,这是我举的例子。

代码语言:javascript
复制
<div>
    *<div>*
        <div>
            <div id=page-break> asdf </div>
        </div>
    *</div>*
    
    *<div>*
        <div id=page-break> qwer </div>
    *</div>*
    *<div>*
        <div>
            <div id=page-break> asdf </div>
        </div>
        <div>
        </div>
    *</div>*
    
</div>
EN

回答 1

Stack Overflow用户

发布于 2022-01-25 23:26:06

我希望我已经正确理解了你的问题。

您可以使用CSS :root伪类来引用最上面的<div>,然后使用:has(#page-break)来获取包含id=page-break的所有<div>

代码语言:javascript
复制
from bs4 import BeautifulSoup

html = """
<div>
    <div>
        <div>
            <div id=page-break> asdf </div>
        </div>
    </div>
    <div>
        <div id=page-break> qwer </div>
    </div>
    <div>
        <div>
            <div id=page-break> asdf </div>
        </div>
        <div>
        </div>
    </div>
</div>
"""

soup = BeautifulSoup(html, "html.parser")

for div in soup.select(":root > div:has(#page-break)"):
    print(div)
    print("-" * 80)

指纹:

代码语言:javascript
复制
<div>
<div>
<div id="page-break"> asdf </div>
</div>
</div>
--------------------------------------------------------------------------------
<div>
<div id="page-break"> qwer </div>
</div>
--------------------------------------------------------------------------------
<div>
<div>
<div id="page-break"> asdf </div>
</div>
<div>
</div>
</div>
--------------------------------------------------------------------------------

或者:

首先选择包含<div>id=page-break (在任何级别上),然后使用:scope

代码语言:javascript
复制
first_div = soup.select_one("div:has(#page-break)")

for div in first_div.select(":scope > div:has(#page-break)"):
    print(div)
    print("-" * 80)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70856528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档