実現したいこと
beautifulsoupを用いたスクレイピングで、soup.findしたものをさらにsoup.findして目的の要素を取り出したい。
例
例えば,以下のhtmlで本のタイトルを取得したいとき、
html
1<div class="wrapper"> 2 <div class="book"> 3 <div class="title">タイトル:python</div> 4 <div class="price">値段:1000円</div> 5 <div class="publisher">出版社:python出版</div> 6 </div> 7 <div class="book"> 8 <div class="title">タイトル:Java</div> 9 <div class="price">値段:2000円</div> 10 <div class="publisher">出版社:Java出版</div> 11 </div> 12 <div class="book"> 13 <div class="title">タイトル:C</div> 14 <div class="price">値段:3000円</div> 15 <div class="publisher">出版社:C出版</div> 16 </div> 17 <div class="book"> 18 <div class="title">タイトル:html</div> 19 <div class="price">値段:4000円</div> 20 <div class="publisher">出版社:html出版</div> 21 </div> 22</div> 23
このようにしたい
python
1#全ての本の情報をbook_listに入れる 2book_list = soup.find_all("div", class_="book") 3 4#book_listから欲しい情報を取り出す 5for i in range(4): 6 title = book_list[i].find("div", class_="title") 7 print(title) 8
しかし、上のコードは間違っており、うまく動かない。
soup.findしたものをさらにsoup.findして目的の要素を取り出すという処理をするコードの書き方がわかりません。ご教授お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/16 13:41
退会済みユーザー
2021/05/16 18:46
2021/05/18 12:23