如何使用python标签和html标签值下的html标签的漂亮汤解析html文件?

时间:2018-10-31 02:22:56

标签: python html beautifulsoup

我的html文件多次包含相同的标记(<span class="fna">)。如果我想区分此标签,那么我需要查看先前的标签。标签({<span id="field-value-reporter">)下的Tag()。 在漂亮的汤中,我只能在tag条件下使用,例如soup.find_all(“ 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>

1 个答案:

答案 0 :(得分:0)

使用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附带的默认元素搜索要强大得多。请注意,所有结果均以列表形式返回,并且包含所有匹配项。

相关问题