<table class=”grid-look”> <thead class=”product-grid-top”> <tr> <td class=”nav prev”>&nbsp;</td> <td><div class=”swatch-option image ” option-type=”2″ option-id=”2351″ option-label=”GRAY/BLACK(MC5SF)” option-tooltip-thumb=”https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194gy01t.jpg” option-tooltip-value=”https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194gy01t.jpg” option-attr-code=”color” style=”background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194gy01t.jpg) no-repeat center; background-size:initial;”></div><div>GRAY/BLACK(MC5SF)</div></td> <td><div class=”swatch-option image ” option-type=”2″ option-id=”2350″ option-label=”WHITE/BLUE(MC2SF)” option-tooltip-thumb=”https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194wh01t.jpg” option-tooltip-value=”https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194wh01t.jpg” option-attr-code=”color” style=”background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194wh01t.jpg) no-repeat center; background-size:initial;”></div><div>WHITE/BLUE(MC2SF)</div></td> <td><div class=”swatch-option image ” option-type=”2″ option-id=”1401″ option-label=”BLACK/RED(MC1SF)” option-tooltip-thumb=”https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194re01t.jpg” option-tooltip-value=”https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194re01t.jpg” option-attr-code=”color” style=”background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194re01t.jpg) no-repeat center; background-size:initial;”></div><div>BLACK/RED(MC1SF)</div></td> <td><div class=”swatch-option image ” option-type=”2″ option-id=”1377″ option-label=”BLACK/YELLOW(MC4HSF)” option-tooltip-thumb=”https://media-www.ec.rs-taichi.com/catalog/product/cache/79cd194851544f88bafc552bf5216e5d/h/j/hjh194ye01t.jpg” option-tooltip-value=”https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194ye01t.jpg” option-attr-code=”color” style=”background:url(https://media-www.ec.rs-taichi.com/catalog/product/cache/455d758771d3747e7d5f3337b2de6a2c/h/j/hjh194ye01t.jpg) no-repeat center; background-size:initial;”></div><div>BLACK/YELLOW(MC4HSF)</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” option-tooltip-thumb=”” option-tooltip-value=”” option-attr-code=”size”>S</div> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> </tr> <tr class=”item”> <td> <div class=”swatch-option text ” option-type=”0″ option-id=”1796″ option-label=”M” option-tooltip-thumb=”” option-tooltip-value=”” option-attr-code=”size”>M</div> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> </tr> <tr class=”item”> <td> <div class=”swatch-option text ” option-type=”0″ option-id=”1795″ option-label=”L” option-tooltip-thumb=”” option-tooltip-value=”” option-attr-code=”size”>L</div> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> </tr> <tr class=”item”> <td> <div class=”swatch-option text ” option-type=”0″ option-id=”1800″ option-label=”XL” option-tooltip-thumb=”” option-tooltip-value=”” option-attr-code=”size”>XL</div> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> <td class=”no-line-height”> <span>廃番</span> </td> </tr> </tbody> </table> 上記のテーブルがある。これを、以下に格納したい。 self.stock_df = pd.DataFrame(data, columns=[‘Color’, ‘Size’, ‘Stock’])

上記のHTMLテーブルからデータを取得して、self.stock_df にDataFrameとして格納する方法は次のようになります。

python
import pandas as pd from bs4 import BeautifulSoup # HTMLテーブルからデータを抽出する関数 def extract_table_data(html_table): data = [] rows = html_table.find_all('tr') # 行を取得 for row in rows: cols = row.find_all(['th', 'td']) # 列を取得 cols = [col.text.strip() for col in cols] # 列のテキストを取得 data.append(cols) # 行のデータを追加 return data # HTMLテーブルからデータを抽出 html_content = """ <table class="grid-look"> <thead class="product-grid-top"> <tr> <td class="nav prev">&nbsp;</td> <td>GRAY/BLACK(MC5SF)</td> <td>WHITE/BLUE(MC2SF)</td> <td>BLACK/RED(MC1SF)</td> <td>BLACK/YELLOW(MC4HSF)</td> </tr> </thead> <tbody id="product-grid" class="product-grid-center"> <tr class="item"> <td>S</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> <tr class="item"> <td>M</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> <tr class="item"> <td>L</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> <tr class="item"> <td>XL</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> <td>廃番</td> </tr> </tbody> </table> """ soup = BeautifulSoup(html_content, 'html.parser') table = soup.find('table') data = extract_table_data(table) # DataFrameに変換して格納 self.stock_df = pd.DataFrame(data[1:], columns=data[0]) print(self.stock_df)

これにより、self.stock_df には次のようなDataFrameが格納されます。

css
Color Size Stock 0 S 廃番 1 M 廃番 2 L 廃番 3 XL 廃番

この例では、各セルのデータがDataFrameに正しく格納されるように、HTMLテーブルからデータを抽出しました。

未分類

Posted by ぼっち