Scrapy中的item和pipline
Item
创建item
在items.py中创建item,示例如下:
import scrapy
class Product(scrapy.Item):
name = scrapy.Field()
price = scrapy.Field()
item的api与python中的字典类似,Field就像字典中预定义好的key
更多item的用法请查阅文档
Pipline
创建Pipline
- 第一步:在piplines.py中编写pipline函数:
class Crawler58CityPipeline(object):
def process_item(self, item, spider): # 该方法负责处理spider中yield的item
data = "【{}】{}".format(item['price'], item['title'])
self.db.sadd(item.table, data)
- 第二步:在settings.py中启用写好的pipline函数:
ITEM_PIPELINES = {
'crawler_58city.pipelines.Crawler58CityPipeline': 300,
}
- 第三步:在spider中yield item对象
item = HouseInfo(title=title, price=price) # 定义好的item对象
yield item # 返回后被pipline中的process_item方法处理