@@ -118,26 +118,43 @@ def get_review_data(self) -> Optional[Dict[str, Any]]:
118118 return response .json ()
119119 return None
120120
121- def parse (self , only_this_variation = True , limit = 300 ) -> List [str ]:
121+ def parse (self , only_this_variation = True , limit = 300 ) -> List [Dict [ str , str ] ]:
122122 """
123123 Парсинг отзывов
124124
125125 Args:
126126 only_this_variation: Если True, возвращает отзывы только для этого варианта товара,
127127 Если False, возвращает все отзывы для всех вариантов товара
128128 limit: Максимальное количество отзывов для возврата
129+
130+ Returns:
131+ List[Dict[str, str]]: Список словарей с полями 'text', 'pros', 'cons' для каждого отзыва
129132 """
130133 json_feedbacks = self .get_review_data ()
131134 if not json_feedbacks :
132135 return []
133136
134137 if only_this_variation :
135138 # Возвращаем отзывы только для конкретного варианта товара (по артикулу)
136- feedbacks = [feedback .get ("text" ) for feedback in json_feedbacks ["feedbacks" ]
137- if str (feedback .get ("nmId" )) == self .sku ]
139+ feedbacks = [
140+ {
141+ "text" : feedback .get ("text" , "" ),
142+ "pros" : feedback .get ("pros" , "" ),
143+ "cons" : feedback .get ("cons" , "" )
144+ }
145+ for feedback in json_feedbacks ["feedbacks" ]
146+ if str (feedback .get ("nmId" )) == self .sku
147+ ]
138148 else :
139149 # Возвращаем все отзывы для всех вариантов товара
140- feedbacks = [feedback .get ("text" ) for feedback in json_feedbacks ["feedbacks" ]]
150+ feedbacks = [
151+ {
152+ "text" : feedback .get ("text" , "" ),
153+ "pros" : feedback .get ("pros" , "" ),
154+ "cons" : feedback .get ("cons" , "" )
155+ }
156+ for feedback in json_feedbacks ["feedbacks" ]
157+ ]
141158
142159 if len (feedbacks ) > limit :
143160 feedbacks = feedbacks [:limit ]
0 commit comments