這是我第一次beautifulsoup用作刮刀工具,我只是慢慢地按照每一步進行操作。
我已經使用soup.find_all("div", class_="product-box__inner")find 一個我想要的元素串列,而這些部分的東西現在并沒有在我腦海中浮現。我下面的問題,
這是 HTML,我的目標是“$0”,我嘗試過但
element.find("span", title= re.compile("$"))我無法使用,element.select("dt > dd > span > span")因為有多個具有相同標簽格式的我根本不需要,有什么方法可以定位跨度資料費用年價值="" 讓 .text 作業?
<div class="product-box__features-item">
<dt class="f-body-3 product-box__features-label">Annual fee</dt>
<dd class="f-title-5 product-box__features-text u-margin-0">
<span>
<span data-fees-annual-value="">$0</span>
</span>
</dd>
</div>
uj5u.com熱心網友回復:
如果要按文本查找元素,請使用string代替title:
element.find("span", string=re.compile('$'))
輸出:
<span data-fees-annual-value="">$0</span>
uj5u.com熱心網友回復:
您已接近您的目標,css selectors它們可以更具體地使用并直接在屬性上參考data-fees-annual-value:
soup.select_one('span[data-fees-annual-value]').text
例子
from bs4 import BeautifulSoup
html="""
<div class="product-box__features-item">
<dt class="f-body-3 product-box__features-label">Annual fee</dt>
<dd class="f-title-5 product-box__features-text u-margin-0">
<span>
<span data-fees-annual-value="">$0</span>
</span>
</dd>
</div>
"""
soup=BeautifulSoup(html,"html.parser")
soup.select_one('span[data-fees-annual-value]').text
輸出
$0
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/386245.html
