1
我想用BeautifulSoup
解析一個糟糕的HTML頁面來檢索一些信息。代碼如下:如何通過路徑訪問元素?
import bs4
with open("smartradio.html") as f:
html = f.read()
soup = bs4.BeautifulSoup(html)
x = soup.find_all("div", class_="ue-alarm-status", playerid="43733")
print(x)
提取片段,我想進一步分析:
[<div alarmid="f319e1fb" class="ue-alarm-status" playerid="43733">
<div>
<div class="ue-alarm-edit ue-link">Réveil 1: </div>
<div>allumé</div>
<div>7:00</div>
</div>
<div>
<div class="ue-alarm-dow">Lu, Ma, Me, Je, Ve </div>
<div class="ue-alarm-delete ue-link">Supprimer</div>
</div>
</div>, <div alarmid="ea510709" class="ue-alarm-status" playerid="43733">
<div>
<div class="ue-alarm-edit ue-link">Réveil 2: </div>
<div>allumé</div>
<div>7:30</div>
</div>
<div>
<div class="ue-alarm-dow">Sa </div>
<div class="ue-alarm-delete ue-link">Supprimer</div>
</div>
</div>]
我對檢索:
- 小時(5線和14)
- 字符串(法語天數)
<div class="ue-alarm-dow">
我相信在這幾天裏重複一個find()
或find_all()
就足夠了。我提的是,因爲雖然它抓住正確的信息,我不知道這是解析與BeautifulSoup文件以正確的方式(但至少它的工作原理):
for y in x:
z = y.find("div", class_="ue-alarm-dow")
print(z.text)
# output:
# Lu, Ma, Me, Je, Ve
# Sa
我不知道怎麼弄儘管如此。有沒有辦法通過路徑導航樹(從我知道小時在第二個<div>
,3個<div>
深處)?或者我應該以不同的方式做?