私は様々な家具のためにウェブをクロールし、その属性を取得するプロジェクトに参加しています。私はDjangoItemを使ってこれらのデータを私のDBに保存しました。私の問題は、forループで使用する応答カウントを取得しています。私はそれが(おそらくない)それを行うための最善の方法かどうかわからない。ここに私のスパイダーがあります:DB(Django、Scrapy)にアイテムを保存するためのループ応答
def parse(self, response):
now = timezone.now()
for item in response.css('.page-content-area'):
for i in range(5):
furnitureItem = FurnitureItem()
furnitureItem['furniture_type'] = 'Chair'
furnitureItem['name'] = item.css('h2 a::text').extract()[i]
furnitureItem['description'] = item.css('a span::text').extract()[i]
furnitureItem['href'] = item.css('h2 a::attr(href)').extract()[i]
furnitureItem['img_source'] = item.css('.lazy::attr(data-original)').extract()[i]
furnitureItem['price'] = item.css('.mt3::text').extract()[i]
furnitureItem['last_update'] = now
yield furnitureItem
ここの各キーには複数の値があります。私はDBに5項目を保存するかどうかを確認するために5回ループしました。します。私が望むのは、このループでそれを使用するための応答のカウントを取得することです。私はScrapyを使い始めました。私はそれを効果的に使うことができないように感じます。 私は何かアドバイスをいただければ幸いです。 さらに、パイプラインは何を行い、どのような場合に使用すべきかという疑問があります。私は公式の文書を読んだが、私は簡単な説明が必要だと思う。
ありがとうございます。
「このループで使用するには応答のカウントを取得しますか?」これについてもっと詳しく説明できますか? – Granitosaurus
私はループを使わずにスパイダーを実行すると、DBに1つの項目を保存します。各属性の値のリストは、name = [chair1、chair2、..]です。私はそれらの椅子を一つずつDBに保存したい。 – HerpesVirus