python(Beautiful Soup使用)で見出しと見出しの間の文字数を数えたい
ワードプレスで運営している自サイトの見出しと見出しの間の文字を数えたいです(SEO的な意味で)
数百記事あるのでスクレイピングで行いたく、詰まっています。
python3
Beautiful Soup
を使っています。
サンプルHTMLが
html
1<div class="entry-content"> 2 <p><img /></p> 3 <p>いろはに</p> 4 <div ><div class="st-in-mybox"> 5 <ul> 6 <li>111</li> 7 <li>222</li> 8 <li>333</li> 9 </ul> 10 </div></div> 11 <p>ほへと</p> 12 <h2>1個目のH2タグ</h2> 13 <p>ちりぬるを</p> 14 <p>わかよたれそ</p> 15 <h3>H3タグ_ほげほげ</h3> 16 <p>あいうえお</p> 17 <p>かきくけこ</p> 18 <h2>2個目のH2タグ</h2> 19 20 ・・略・・ 21</div> 22
だとして、
16文字
1個目のH2タグ(タグの中の文字列を持ってきたい)
11文字
H3タグ_ほげほげ
と出力したいです。
h2,h3タグと数えたいpタグ等が同じ階層にあるためうまくいきません。
また、pタグ,liタグ,aタグ等が考えられ、汎用性のあるコードが思いつきません。
そもそもBeautiful Soupの選択を変えるべきでしょうか?
python
1page_s = page.select('css_selector_to_target > div.entry-content') 2 3for page_loop in page_s: 4 5 h3 = page_loop.find("h3").text 6 print("h3テキスト > " + h3) 7
という感じまで進んでいます。
初心者かつ独学なので、質問以外の点でも、
おかしい所あったらご指摘お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/27 05:38