HTMLが元データなんだけど

理解しました。HTMLからデータを取得して結合する方法を示します。まず、Beautiful Soupを使用してHTMLを解析し、必要なデータを抽出します。その後、Pandasを使用してデータをデータフレームに変換し、結合します。

以下は、Beautiful SoupとPandasを使用してHTMLからデータを抽出し、結合する方法の例です:

python
from bs4 import BeautifulSoup import pandas as pd # 最初のHTMLデータ html1 = """ <table class="grid-look"> <thead class="product-grid-top"> <tr> <td><div class="swatch-option image" option-type="2" option-id="1346" option-label="BLACK"></div><div>BLACK</div></td> <td><div class="swatch-option image" option-type="2" option-id="1347" option-label="GRAY"></div><div>GRAY</div></td> </tr> </thead> <tbody id="product-grid" class="product-grid-center"> <tr class="item"> <td><div class="swatch-option text" option-type="0" option-id="1801" option-label="S">S</div></td> <td><span>在庫有り</span></td> </tr> <tr class="item"> <td><div class="swatch-option text" option-type="0" option-id="1796" option-label="M">M</div></td> <td><span>在庫有り</span></td> </tr> </tbody> </table> """ # 2番目のHTMLデータ html2 = """ <table class="item_size"> <tbody> <tr> <td>商品番号</td> <td>Color</td> <td>Size</td> </tr> <tr> <td>RSU500BK01L</td> <td>BLACK</td> <td>L</td> </tr> <tr> <td>RSU500BK01M</td> <td>BLACK</td> <td>M</td> </tr> </tbody> </table> """ # BeautifulSoupでHTMLを解析 soup1 = BeautifulSoup(html1, 'html.parser') soup2 = BeautifulSoup(html2, 'html.parser') # データを抽出してリストに格納 data1 = [] for tr in soup1.find_all('tbody')[0].find_all('tr'): tds = tr.find_all('td') if len(tds) == 2: data1.append([tds[0].text.strip(), tds[1].text.strip()]) data2 = [] for tr in soup2.find_all('tbody')[0].find_all('tr'): tds = tr.find_all('td') if len(tds) == 3: data2.append([tds[0].text.strip(), tds[1].text.strip(), tds[2].text.strip()]) # データをデータフレームに変換 df1 = pd.DataFrame(data1, columns=['Size', 'Stock']) df2 = pd.DataFrame(data2, columns=['商品番号', 'Color', 'Size']) # カラム名が一致する場合はマージ merged_df = pd.merge(df1, df2, on=['Color', 'Size']) # 結果を表示 print(merged_df)

このコードは、2つのHTMLからデータを抽出し、Pandasのデータフレームに変換し、指定されたカラムで結合します。結果のデータフレーム merged_df には、両方のHTMLから抽出されたデータが組み合わされています。

未分類

Posted by ぼっち