#BeautifulSoupを用いたスクレイピングにおいて子要素内のテキストを取得する方法はありますでしょうか?
下記にもありますが、次のHTML<div class="an ao ap aq ar">
が親要素でありそれ以下のHTMLが子要素です。さらにその子要素の中の<div class="c5 f9 fa fb fc fd">
の子要素であるのが<div class="fe ff fg fh">
以降のクラスです。
しかし普段この子要素たち<div class="c5 f9 fa fb fc fd">
と<div class="fe ff fg fh">
は親要素の中に隠れており、▶をクリックしないと出てこないようになっております。
HTML
1<div class="an ao ap aq ar"> 2 <div class="fp"></div> 3 <div class="c5 f9 fa fb fc fd"> 4 <div class="fe ff fg fh"> 5 <div class="fe ff fg fh"> 6 <div class="fe ff fg fh"> 7 <div class="fe ff fg fh"> 8 <div class="fe hi hj"> 9 <div class="af gc"> 10 <a tabindex="-1" href="https://www.ubereats.com/jp/kyoto/food-delivery/%E3%81%BB%E3%81%A3%E3%81%A8%E3%82%82%E3%81%A3%E3%81%A8-%E5%90%91%E6%97%A5%E5%88%87%E3%83%8E%E5%8F%A3/upB0SF_VQ3iBzQlQ3Ocs2w?pl=JTdCJTIyYWRkcmVzcyUyMiUzQSUyMiVFNSU5MCU5MSVFNiU5NyVBNSVFNSVCOCU4MiUyMiUyQyUyMnJlZmVyZW5jZSUyMiUzQSUyMkNoSUpMNlpKcGlZRUFXQVI1X0hOWFpWTDZYYyUyMiUyQyUyMnJlZmVyZW5jZVR5cGUlMjIlM0ElMjJnb29nbGVfcGxhY2VzJTIyJTJDJTIybGF0aXR1ZGUlMjIlM0EzNC45NDg3MDYxJTJDJTIybG9uZ2l0dWRlJTIyJTNBMTM1LjY5ODQxNzElN0Q%3D" 11 <figure height="240" class="gd af ge b3"> 12 <div class="cc el ag bp bq"> 13 <img alt="ほっともっと 向日切ノ口" src="https://duyt4h9nfnj50.cloudfront.net/resized/1543379091952-w550-59.jpg" aria-hidden="true" class="cc e1 hh cy"> 14 </div> 15 <div class="ag gf au cu cc gg aq"> 16 <button aria-label="お気に入りに保存" title="お気に入りに保存" class="b0 b9 gh af gi gj gk gl gm gn">...</button> 17 </div> 18 </figure> 19 <div class="gp au aw">...</div> 20 <div class="gw c3 c4 gx gy gz au aw">...</div> 21 </a> 22 </div> 23 </div> 24 <div class="fe hi hj"> 25 <div class="fe hi hj"> 26 <div class="fe hi hj"> 27 <div class="fe hi hj"> 28
自分がやりたいことは2つあります。
1つ目は<div class="fe hi hj">
の中にある<img alt="ほっともっと 向日切ノ口">
のテキストの部分("ほっともっと 向日切ノ口")を抜き出すことです。また同じクラス<div class="fe hi hj">
が複数個あるので同様に全てのクラスからテキストを抜き出したいと思っております。
2つ目はcount関数を使い<div class="fe hi hj">
がいくつあるかを求めることです。
Python
1page = requests.get("https://www.ubereats.com/jp/feed?pl=JTdCJTIyYWRkcmVzcyUyMiUzQSUyMiVFNSU5MCU5MSVFNiU5NyVBNSVFNSVCOCU4MiUyMiUyQyUyMnJlZmVyZW5jZSUyMiUzQSUyMkNoSUpMNlpKcGlZRUFXQVI1X0hOWFpWTDZYYyUyMiUyQyUyMnJlZmVyZW5jZVR5cGUlMjIlM0ElMjJnb29nbGVfcGxhY2VzJTIyJTJDJTIybGF0aXR1ZGUlMjIlM0EzNC45NDg3MDYxJTJDJTIybG9uZ2l0dWRlJTIyJTNBMTM1LjY5ODQxNzElN0Q%3D") 2soup = BeautifulSoup(page.content, 'lxml') 3 4menus = soup.find_all(class_="fe hi hj") 5menu_list = [menu.get_text() for menu in menus] 6 7print(menu_list)
上記の方法でテキストを入手しようとしましたが結果は[]
でした。
これらをできる方法がありましたらご教授願います。
回答2件
あなたの回答
tips
プレビュー