やりたいこと
<h4 class="name" data-name="SSS" style="height: 13px;">SSS</h4> からSSSを抜き出したい。問題
google chromeの検証からHTMLを追ったが、cssセレクタの挙動が想定と異なる。
HTML例
検索結果を表示するサイトにおいて、デフォルトで全件の名前や付属情報が表示されているので、そこから全件の名前や付属情報を抽出したい。
# HTML <div id="CY" class="SW"> <div class="LP-RT-AE"> <div class="LP-RT-AE_HR"> <h3 class="LP-RT-AE_HR-text" data-CY="CY_01">コンパクト</h3> </div><div class="LP-RT-AE_body"> <ul class="LP-RT-list js-tile_container"> <li class="LP-RT-list_item js-tile carname-01_1"> <dl> <dt> <img src="images/pc/car_SHUTTLE.png" alt="im" class="image" data-image=""> </dt> <dd> <h4 class="ne" data-ne="SSS" style="height: 13px;">SSS</h4> <h5 class="ct" data-CY="VVV" style="height: 10px;">VVV</h5> <h6 class="ee" data-ee="OOO<" style="height: 10px;">OOO</h6> <dl class="price-dl" style="height: 10px;"> <dt>pri</dt>
# コード url = 'AAAAAAAAAAAAAA' res = requests.get(url) content = res.content soup = BeautifulSoup(content, 'html.parser') ss = soup.find_all('div', class_='LP-RT-AE')
この時点でssにh4を含む結果が残りません。
ssの出力結果はなにもないです。
1つ階層が上の <div class="LP-RT">で
ss_old = soup.find_all('div', class_='LP-RT')
を行うと出力は以下のようになります。
[<div class="LP-RT"> <div class="LP-RT-CT"> <p> <span>GU</span> <strong class="js-result-count" id="resultCount">0</strong> <span>件</span> </p> </div><!-- .LP-RT-CT --> <div id="category"> <!-- RESULT --> </div><!-- #category --> </div>]
残りの処理については、
for sss in ss: ne = sss.h4 ct = sss.h4 ee = sss.h5 print(ne, ct, ee)
のような感じをイメージしています。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー