Raj725, ваш вопрос актуален для начинающих в Scrapy и может быть на Python.У меня был тот же вопрос, прежде чем я прочитал документацию Scrapy.Невозможно понять Scrapy без чтения документации.Вы можете начать читать учебник , затем раздел Элемент и раздел Конвейер.
Это пример того, как получить несколько типов данных.
1 Необходимость предварительной обработки элементов, которые вам нужны вфайл items.py:
from scrapy import Item, Field
class FirstItem(Item):
field_one = Field()
field_two = Field()
class SecondItem(Item):
another_field_one = Field()
another_field_two = Field()
another_field_three = Field()
2 Теперь вы можете использовать Предметы в своем коде терапии.Вы можете получить Предметы в любом месте, где у вас есть данные для сохранения:
from ..items import FirstItem, SecondItem
item = FirstItem(
field_one=response.css("div.one span::text").extract_first(),
field_two=response.css("div.two span::text").extract_first()
)
yield item
item = SecondItem(
another_field_one='some variable one',
another_field_one='some variable two',
another_field_three='some variable tree'
)
yield item
3 Пример файла pipe.py.Не забудьте проверить тип элемента перед его сохранением.В конце «process_item» вы должны вернуть товар.
from .items import FirstItem, SecondItem
class FirstPipeline(object):
def process_item(self, item, spider):
if isinstance(item, FirstItem):
# Save your data here. It's possible to save it to CSV file. Also you can put data to any database you need.
pass
return item
class SecondPipeline(object):
def process_item(self, item, spider):
if isinstance(item, SecondItem):
# Save your data here. It's possible to save it to CSV file. Also you can put data to any database you need.
pass
return item
4 Не забудьте объявить свои конвейеры в settings.py.Scrapy не будет использовать Pilelines без него.
ITEM_PIPELINES = {
'scrapy_project.pipelines.FirstPipeline': 300,
'scrapy_project.pipelines.SecondPipeline': 300,
}
Я не предоставил готовый код.Я предоставил примеры кода, чтобы понять, как он работает.Можно добавить его в свой код и внести необходимые изменения.Я не показал, как сохранить элементы в файлы CSV.Вы можете импортировать модуль "CSV".Также вы можете использовать CsvItemExported в вашем pipeline.py из "scrapy.exporters".Я привел ссылку с примером того, как сохранить разные элементы в разные файлы CSV.