我卡住了,無法獲取所需的資料,這是 html 代碼
<div role="tabpanel" class="tab-pane active" id="final-results">
<div class="container-fluid">
<div class="row">
<div class="col-xs-12 instruction">
<h4>Final and Return</h4>
</div>
<div class="col-xs-12 col-sm-3 non-printable">
<img class="img-responsive rotate-card" src= "...">
</div>
<div class="col-xs-12 col-sm-3 text-center">
<div class="data-box">
<div class="name">Final Ending</div>
<div class="value">123456789</div>
</div>
</div>
<div class="col-xs-12 col-sm-3 text-center">
<div class="data-box">
<div class="name">Available Phase</div>
<div class="value">250</div>
</div>
</div>
<div class="col-xs-12 col-sm-3 text-center">
<div class="data-box">
<div class="name">Initial Phase</div>
<div class="value">500</div>
</div>
</div>
這是我的python代碼:
soup = BeautifulSoup(form_resp.content, features="html.parser")
avail_phase = soup.find("div", text="Available Phase").find_parent("div", class_="value").text
initial_phase = soup.find("div", text="Initial phase").find_parent("div", class_="value").text
logger.info("Success! Final Number: {}".format(avail_phase))
return {"initial_phase": initial_phase, "available_phase": avail_phase}
無論我做什么,我都會遇到同樣的錯誤“最后一個錯誤:'NoneType'物件沒有屬性'find_parent'”
請尋求您的幫助
uj5u.com熱心網友回復:
如果您正在尋找從該行中抓取資料class='value',那么您可以使用find_next_sibling,因為我看到它class='value'是您最初搜索的文本的兄弟(Available Phase和Initial Phase)
我必須告訴你,我只是在查看代碼的基礎上提供這個解決方案,因為我認為我目前沒有辦法對此進行測驗。所以,試試這個代碼,看看它是否有效。
avail_phase = soup.find("div", text="Available Phase").find_next_sibling("div", class_="value").text
initial_phase = soup.find("div", text="Initial phase").find_next_sibling("div", class_="value").text
uj5u.com熱心網友回復:
怎么了?
您嘗試使用 選擇父級
find_parent("div", class_="value"),但沒有符合此條件的父級標記。您的選擇
soup.find("div", text="Initial phase")找不到標簽,因為它需要完全匹配Initial phase
怎么修?
更改為
.find_next("div", class_="value").text或.find_next("div").text或.find_next_sibling("div").text以獲取下一個文本<div>更改
text="Initial phase"為text="Initial Phase"找到正確的<div>
例子
from bs4 import BeautifulSoup
html='''
<div >
<h4>Final and Return</h4>
</div>
<div >
<img src= "...">
</div>
<div >
<div >
<div >Final Ending</div>
<div >123456789</div>
</div>
</div>
<div >
<div >
<div >Available Phase</div>
<div >250</div>
</div>
</div>
<div >
<div >
<div >Initial Phase</div>
<div >500</div>
</div>
</div>
'''
soup = BeautifulSoup(html, features="html.parser")
avail_phase = soup.find("div", text="Available Phase").find_next("div", class_="value").text
initial_phase = soup.find("div", text="Initial Phase").find_next("div", class_="value").text
print({"initial_phase": initial_phase, "available_phase": avail_phase})
輸出
{'initial_phase': '500', 'available_phase': '250'}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/412064.html
標籤:
上一篇:使用Python抓取房地產網站
