pythonでHTMLのスクレイピングをしています。
HTMLから以下のような形のpandasデータとして情報を取得したいのですが、うまく出来ずお知恵を拝借したく。
やりたい事
name, msg text, date 太郎, こんにちわ, 2020-09-01 次郎, ,,2020-01-01 三郎, お久しぶりです, 2020-06-01
という二次元配列データとして以下のHTMLから取り出したい。
HTML
<div class="msglist"> <div class="msgbox"> <div class="name">太郎</div> <span class="msg text">こんにちわ</span> <div class="date">2020-09-01</div> </div> <div class="msgbox"> <div class="name">次郎</div> <div class="date">2020-01-01</div> </div> <div class="msgbox"> <div class="name">三郎</div> <span class="msg text">お久しぶりです</span> <div class="date">2020-06-01</div> </div> </div>
次郎のところには
<span class="msg text">hogehoge</span>
自体が存在しないため、例えば
elems1 = html.findAll('div', class_='name') elems2 = html.findAll('span', class_='msg text') elems3 = html.findAll('div', class_='date')
という形で抜き出してしまうと次郎のところでmsg textがNULLである、ということが知得出来ず困っています。
どのようにすればやりたいことが出来るのが教えて頂きたく。
親divで全体を取得した際に例えば太郎のmsg textを取得、のような記載方法が理解できていないです。
回答5件
あなたの回答
tips
プレビュー