Как сделать так, чтобы парсер на SCRAPY сначала собирал все данные, а уже после их обрабатывал
Мне необходимо собрать данные с сайта, которые находятся на разных страницах и обработать их с помощью pandas. По логике парсера (если я её правильно понял, тк. новичок) он сначала заходит на страницу забирает и потом отправляет нужные мне данные на обработку в pipelines.py, и только после этого переходит на следующую страницу и повторяет все действия. А мне необходимо найти количество уникальных данных(для чего и нужен pandas), т.е. нужно сначала собрать все данные, а потом уже обрабатывать.
Вот примерный код паука:
class ScraperSpider(scrapy.Spider):
name = 'parser'
start_urls = links()
def parse(self, response, **kwargs):
result_list = ResultItem()
c = response.xpath('//*[contains(text(), "some_text1")]').getall()
if len(c) > 0:
a = response.xpath('//*[contains(text(), "some_text2")]/text()').getall()
if len(android) == 1:
result_list['operation_system'] = a[-1]
elif len(android) == 3:
result_list['operation_system'] = a[1]
else:
result_list['operation_system'] = 'a_text'
else:
b = response.xpath('//*[contains(text(), "some_text3")]/text()').getall()
if len(ios) > 1:
result_list['operation_system'] = b[1]
else:
result_list['operation_system'] = b[0]
yield result_list
Варианта кода pipelines нет, тк. ничего адекватного для своего варианта не могу придумать.