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