- Как использовать предметы в моем пауке?
Что ж, основная цель элементов — хранить данные, которые вы просканировали. scrapy.Items
в основном словари. Чтобы объявить свои предметы, вам нужно будет создать класс и добавить в него scrapy.Field
:
import scrapy
class Product(scrapy.Item):
url = scrapy.Field()
title = scrapy.Field()
Теперь вы можете использовать его в своем пауке, импортировав свой продукт.
Для получения дополнительной информации я предлагаю вам ознакомиться с документом здесь< /а>
- Как отправить элементы в конвейер?
Во-первых, вам нужно сказать своему пауку использовать ваш custom pipeline
.
В файле settings.py:
ITEM_PIPELINES = {
'myproject.pipelines.CustomPipeline': 300,
}
Теперь вы можете написать свой конвейер и поиграть со своим предметом.
В файле pipeline.py:
from scrapy.exceptions import DropItem
class CustomPipeline(object):
def __init__(self):
# Create your database connection
def process_item(self, item, spider):
# Here you can index your item
return item
Наконец, в вашем пауке вам нужно yield
ваш элемент, как только он будет заполнен.
Пример spider.py:
import scrapy
from myspider.items import Product
class MySpider(scrapy.Spider):
name = "test"
start_urls = ['http://www.exemple.com']
def parse(self, response):
doc = Product()
doc['url'] = response.url
doc['title'] = response.xpath('//div/p/text()')
yield doc # Will go to your pipeline
Надеюсь, это поможет, вот документ для конвейеров: Конвейер элементов
person
Adrien Blanquer
schedule
12.05.2017