BeautifulSoupでサイズとカラー別で取得したいんだ
理解しました。サイズとカラー別に在庫情報を取得するために、以下の手順を実行できます。
- BeautifulSoupを使用してHTMLを解析します。
- 在庫情報を格納するための空の辞書を作成します。
<tr>要素をループして、各行の情報を取得します。- 各行の
<th>要素からサイズを取得します。 - 各行の
<td>要素からカラーと在庫情報を取得します。 - サイズとカラーを組み合わせて在庫情報を辞書に追加します。
以下は、この手順を反映したコード例です:
python
from bs4 import BeautifulSoup
html = """
<table class="stockList">
<!-- ここにHTMLが入ります -->
</table>
"""
# BeautifulSoupを使用してHTMLを解析
soup = BeautifulSoup(html, 'html.parser')
# 在庫情報を格納するための辞書
stock_info = {}
# <tr>要素をループ
for row in soup.find_all('tr'):
# サイズを取得
size = row.find('th', class_='leftLine').get_text().strip()
# カラーと在庫情報を取得
for cell in row.find_all('td'):
# カラーを取得
color = cell.find_previous_sibling('th').get_text().strip()
# 在庫情報を取得
input_tag = cell.find('input')
if input_tag:
# 在庫情報を格納
stock_status = cell.find(class_='M_stock-status').get_text().strip()
# サイズとカラーをキーとして在庫情報を辞書に追加
stock_info.setdefault(size, {}).setdefault(color, {'value': input_tag['value'], 'status': stock_status})
# 結果を出力
for size, colors in stock_info.items():
print(f"Size: {size}")
for color, data in colors.items():
print(f" - Color: {color}, Value: {data['value']}, Status: {data['status']}")
このコードは、指定されたHTMLからサイズとカラー別の在庫情報を取得し、辞書に格納します。最後に、取得した在庫情報を出力しています。

ディスカッション
コメント一覧
まだ、コメントがありません