Python3.8でBeautifulSoupを使用してのスクレイピングをしています。
取得したいテキストのクラスが、他のテキストのクラスと重複しており、希望のテキストがうまく取得できません。
以下のようなhtmlで<p>部分すべてを取得するにはどうすればいいのでしょうか。
<p>は記載以外の個所もあり、この部分の<p>だけを取得したいと考えています。html
1<h3>ステータス</h3> 2 <table class="textCenter"> 3 <tr class="point"><th></th><th>Lv50</th></tr> 4 <tr><th class="th25">体力</th><td>5000</td></tr> 5 <tr><th>攻撃力</th><td>1000</td></tr> 6 <tr><th>防御力</th><td>1000</td></tr> 7</table> 8 9<table> 10 <tr class="point"><th>スキル</th><th>スキル</th></tr> 11 <tr><th class="th25">スキル1</th><td><h5>スキル1名前</h5><p>スキル1効果<strong>10%</strong>威力の攻撃</p></td></tr> 12 <tr><th>スキル2</th><td><h5>スキル2名前</h5><p>スキル2効果<strong>10%</strong>威力の攻撃</p></td></tr> 13</table>
skill = soup.find(class_="point")
for element in skill.find_all("p"):
としたのですが、最初のclass_="point"に<p>がないせいか、空白で返ってきます。
スクレイピングは実際の HTML に応じて、抽出条件をかえる必要があるため、URL 及び取得したい範囲を追記してください
https://ryu.sega-online.jp/special/character/c17546e9/
このサイトの
スキル名、スキルが書かれたテーブル部分をテキストで取得したいと考えています。
回答1件
あなたの回答
tips
プレビュー