亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

美麗的湯解析多個標簽

美麗的湯解析多個標簽

瀟瀟雨雨 2022-05-24 10:41:38
我正在為我的學校評分系統處理數據,并試圖弄清楚如何按類別提取數據。這是原始 HTML:https ://pastebin.com/icbaemd7現在,我編寫了一個 Python 腳本:html = driver.page_sourcesoup = BeautifulSoup(html, 'html.parser')chemData = ((soup.find_all('td')))content = []print chemDataprint ""for i in chemData:    content.append(i.getText().split('</td')[0])for k in content:    print (k)返回此結果:Safety Contract Signed1/18/13/2019Student Profile Sheet Turned In1/18/13/2019Polyatomic Ion Quiz10/108/19/2019HW Quiz Ch. 3 Target 63/38/27/2019HW Quiz (Ch. 3 Targets 1-6)12/168/28/2019Chapters 1 & 2 Formative Quiz15/178/21/2019Chapter 3 Formative Quiz23.5/259/5/2019Lab Report: Antifreeze Lab10/108/21/2019Types of Reactions Lab Report11/128/23/2019Hydrate Lab Report10/108/29/2019Lab Assessment - Types of Reactions Lab10/158/26/2019Lab Assessment: Hydrate Lab10/109/3/2019但是,我想將這些分類到 HTML 中存在的類別中。h3如果我使用而不是運行相同的腳本td,我會得到它們:HomeworkFormative QuizzesLab ReportsLab Assessments所以我的問題是:如何讓它自動將實際作業分類到相應的類別中?任何幫助將不勝感激。謝謝!
查看完整描述

2 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

嘗試以下類似的方法,您可以在其中測試 h3 并制作字典鍵,否則從當前 dict[key] 下的行中添加值


from bs4 import BeautifulSoup as bs


html = '''yourHTML'''

soup = bs(html, 'lxml')

results = {}


for i in soup.select('h3, tr'):

    if i.name == 'h3':

        header = i.text

        results[header] = []

    else:

        results[header].append(' '.join([n.text for n in i.select('td')]))

print(results)


查看完整回答
反對 回復 2022-05-24
?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

您的 html 無法正確呈現。然而,作為快速解決方案,查找包含 h3 標記和每個類別的表的父容器,并首先抓取父容器。例如,讓我們假設 h3 標簽和表格在一個 div 下。然后先刮掉div 標簽,即 d = soup.findall('div')。然后通過 d 進一步循環以提取 h3 標簽,然后是 tr/td。前任。d[0].findall('h3') d[0].findall('td') 等等..



查看完整回答
反對 回復 2022-05-24
  • 2 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號