■やりたいこと
pythonとseleniumで、
下記HTMLタグがあり、下記pythonコードで商品名、価格をスクレイピングしたかったのですが、価格情報が入ってこないのです。
自分で調べてなんとなくわかったことは、
①HPはjavascript動作しており、商品名「りんごやみかん」の横に、表示ボタンがあり、そのボタンをクリックすると、値段の列(2行目のtd)が表示される動作になっていました。
②HTMLタグを確認したところ、値段の<td>に「style="display: none;」が入っていました。このdisplayのnoneを①のjavascriptのボタンで切り替えて、表示/非表示を切り替えているんだと思います。ただ、セレニウムを起動させて、タグ情報がどこまでトレイルのかを確認したところ、下記HTMLのように価格のtd情報をまで抜けているようなので、noneのせいで情報を引っ張ってこれてないのだと思っているのですが。
商品名、価格情報を抜く方法をお分かりの方がおられましたらご教示お願いできないでしょうか。
ちなみに商品数は100ぐらいあるため、商品数は2個にしております。
python
1driver = webdriver.Chrome() 2driver.get('URL') 3 4#↓投稿時に間違ってました 5##result=driver.find_elements_by_xpath("//*[@id='search-result-area']") 6result=driver.find_elements_by_xpath("//*[@id='ida']/tbody/tr/td") ←修正しました。 7 8#要素数ループさせて中身を確認する 9kaisu=len(result) 10 11for kakunin in kaisu: 12 print(kakunin,"の回数目確認") 13 print(f'{result[kakunin].text = }')
HTML
1<table id="ida" class="igsv-table dataTable no-footer dtr-inline collapsed" lang="ja" style="width: 600px;" role="grid" aria-describedby="id_info">` 2 <thead> 3 <tr id="ida-r-1" class="r-1 odd" role="row"> 4 <th class="col-1 odd sorting_asc" tabindex="0" aria-controls="ida" rowspan="1" colspan="1" style="width: 520px;"> 5 <div>商品名</div> 6 </th> 7 8 <th class="col-2 even sorting" tabindex="0" aria-controls="ida" rowspan="1" colspan="1" style="width: 80px;"> 9 <div>値段</div> 10 </th> 11 </tr> 12 </thead> 13 14 <tbody> 15 <tr id="ida-r-19" class="r-19 odd" role="row"> 16 <td class="col-1 odd sorting_1" tabindex="0">りんご</td> 17 <td class="col-2 even" style="display: none;">¥300</td> 18 </tr> 19 20 <tr id="ida-r-18" class="r-18 even" role="row"> 21 <td class="col-1 odd sorting_1" tabindex="0">みかん</td> 22 <td class="col-2 even" style="display: none;">¥100</td> 23 </tr> 24 25 </tbody> 26</table>

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/18 08:04
2022/04/18 08:11
2022/04/18 08:58
2022/06/07 21:47