商品名などのデータを集めたいが、クラス名などが共通してしまっている
解決したいこと
ポケモンカードの公式ページから「商品名・発売日・金額」のデータを収集して、pandasを通じてエクセルにまとめたいです。
RequestsとBeautifulSoupを使っているのですが、抜き出したい商品名などのデータに共通のクラス名が使われており難儀しています。
発生している問題・エラー
from bs4 import BeautifulSoup as bs
import requests
import pandas as pd
url = "https://www.pokemon-card.com/products/"
res = requests.get(url)
soup = bs(res.text, 'html.parser')
dates = []
names = []
prices = []
contents = soup.select('#productsTab_expansionPack')
まず、URLを開くと商品一覧にアクセスできるのですが、
「拡張パック」「構築デッキ」「その他の商品」「周辺グッズ」のソースすべてが同じ階層にある(表現が下手くそですみません)
この中で、「拡張パック」(クラス名:KSTabContents_item current id=productsTab_expansionPack)だけをデータの抽出対象にしたいです。
この下に「List-product」と「List_item」というクラスがあるので、本当はこのクラス名を指定したいのですが、「構築デッキ」「その他の商品」などにも「List-product」と「List_item」というクラス名が使われているので、そちらも抽出してしまうため使えません。
このようにid=productsTab_expansionPackのなかの
「List_item」だけを抽出するにはどのように書けばよいのでしょうか??
自分で試したこと
contents = soup.find('li', class_='KSTabContents_item current')
ここで指定したcontentsを再びBeautifulSoupに入れられないかと思ったのですが、type関数(?)でチェックしたらテキスト型ではなかったので頓挫しています。