1つのHTMLに複数のskuが入っているんだ。SKUの部分をfor文で回して登録したいんだよね
理解しました。その場合、HTML内の複数のSKUごとにスクレイピングを行い、各SKUのデータを個別に登録する必要があります。以下は、その方法のサンプルコードです。
python
class CustomScrayping(Scrayping): @staticmethod def scrape_html_data(html_content): # BeautifulSoupを使用してHTMLを解析 soup = BeautifulSoup(html_content, 'html.parser') # SKUの部分を見つけるためのセレクタやパターンを設定 sku_elements = soup.find_all('div', class_='sku') # 例えば、SKUがdiv要素であると仮定 for sku_element in sku_elements: # SKUごとにデータをスクレイピング manufacturer_part_number = CustomScrayping.scrape_manufacturer_part_number(sku_element) stock = CustomScrayping.scrape_stock(sku_element) price = CustomScrayping.scrape_price(sku_element) # 他のデータも同様にスクレイピング # スクレイピングされたデータを使用してSKUインスタンスを作成し保存 sku_instance = SKU.objects.create( manufacturer_part_number=manufacturer_part_number, stock=stock, price=price, # 他のデータも同様に設定 ) # 他の処理やデータ登録があれば追加 @staticmethod def scrape_manufacturer_part_number(sku_element): # 製造元パート番号をスクレイピングして返す return manufacturer_part_number @staticmethod def scrape_stock(sku_element): # 在庫情報をスクレイピングして返す return stock @staticmethod def scrape_price(sku_element): # 価格情報をスクレイピングして返す return price # 他のデータをスクレイピングするためのメソッドを追加 # HTMLデータを取得 html_content = crawl_data.html_content # ここで適切なHTMLデータを取得する # HTMLデータからSKUごとにスクレイピングを行い、データを登録 CustomScrayping.scrape_html_data(html_content)
この例では、scrape_html_data メソッドが与えられたHTMLデータからSKUごとにスクレイピングを行い、各SKUのデータをデータベースに登録しています。各SKUのデータは繰り返し処理を使用して個別に処理され、それぞれが独立してデータベースに保存されます。

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