Pythonを用いたスクレイピングに関する問題です。
前提・実現したいこと
https://www.sakenomy.jp/search/sake/result/?t=sake&p=1
上記のサイトにおける各日本酒のリンク(href=~~)を取得したいと考えています。
使用言語はPythonです。
発生している問題・エラーメッセージ
urllibでは404エラーを吐きそもそもコード取得が出来ない
↓
beautifulsoupなら取得できるようだ→できた
↓
<a aria-label="詳細へ遷移" href="/sake/TST0000047606/"><div class="item_image-container__-Xn8h" style="height: 184px; width: 184px;"><img src="https://img.sakenomy.jp/thumbnail_small/wholeImage/K01N019003_20210906052524.jpg" alt="" class="item_item-image__3TJuB" height="184" width="184"></div></a>
ページ上ではこの部分が取得したい情報っぽいのでseleniumのfind_element_by_class_nameで取得しようとするができない。取得コードを見てみるとページ上のものと明らかに異なるので原因追求
↓
どうやらjavascriptが使われていると表示上と取得コードが異なるようだ
↓
seleniumで取得したソースコードをbeautifulsoupに渡せばjavascript実行後のソースコードを取得できるようだ。
↓
それでも欲しい情報を取ることができず途方に暮れる←今ここ
該当のソースコード
from bs4 import BeautifulSoup
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('https://www.sakenomy.jp/search/sake/result/?t=sake&p=1')
soup = BeautifulSoup(browser.page_source, 'html.parser')
soup.find_all('img')
↑日本酒の画像がページ上に20枚表示されているのでその分の情報が出るはずだと思ったが出ない。
試したこと
発生している問題のところに記載させていただいたため省略
補足情報(FW/ツールのバージョンなど)
web frameworkとしてBootstrap
CIシステムとしてwebpackというツールが当該ページ上で使われているようで、それが原因か?とも思ったのですがそこは調べても同様の困りごとに当たっている方が見つかりませんでした。