如何使用python和beautiful soup从html标记值下的html标记解析html文件?

2024-05-17 04:36:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我的html文件多次包含相同的标记(<span class="fna">)。如果我想区分这个标签,那么我需要看前面的标签。Tag(<span id="field-value-reporter">)下的Tag()。 在靓汤里,我只能在标签条件下申请,汤。全部找到(“span”,{“id”:“fna”})。此函数提取标记(<span class="fna">)的所有数据,但我只需要包含在标记(<span id="field-value-reporter")下的数据

html标记示例:

<div class="value">
    <span id="field-value-reporter">
        <div class="vcard vcard_287422" >
          <a class="email " href="/user_profile?user_id=287422" > 
            <span class="fna">Chris Pearce (:cpearce)
            </span>
          </a>
        </div>
    </span>
</div>

<div class="value">
    <span id="field-value-triage_owner">
        <div class="vcard vcard_27780" >
          <a class="email " href="/user_profile?user_id=27780"> 
            <span class="fna">Justin Dolske [:Dolske]
            </span>
          </a>
        </div>
    </span>
</div>

Tags: 数据标记dividfieldvaluehtmltag
1条回答
网友
1楼 · 发布于 2024-05-17 04:36:10

使用soup.select

soup.select('#field-value-reporter a > span') # select for all tags that are children of a tag whose id is field-value-reporter

>>> [<span class="fna">Chris Pearce (:cpearce)</span>]

soup.select使用css选择器,在我看来,它比BeautifulSoup附带的默认元素搜索功能强大得多。请注意,所有结果都作为列表返回,并包含所有匹配的结果。你知道吗

相关问题 更多 >