🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
在scrapy中通过在`pipelines.py`中定义一个对数据操作的管道来保存数据。 <br/> **1. 在`pipelines.py`定义一个Pipeline管道** ```python class MyspiderPipeline: def process_item(self, item, spider): """ (1) process_item是固定方法名,不能更改 (2) 你可以在该方法中将数据保存 :param item: 当爬虫books.py中 yield item 一次则process_item方法被调用一次 item参数名可以与 yield item 参数名不一样 :param spider: :return: 返回item,将item提交给引擎 """ print(item) # {'url': 'https://book.jd.com/'} return item ``` <br/> **2. 在你的爬虫产生数据的地方`yield item`** ```python #books.py import scrapy class BooksSpider(scrapy.Spider): name = 'books' allowed_domains = ['book.jd.com'] start_urls = ['http://book.jd.com/'] def parse(self, response): item = {} item['url'] = response.url # 在生成数据第地方 yield 数据,将数据发送到pipeline管道的process_item方法中 # 每做一次 yield item 就会调用一次 process_item 方法 yield item pass ``` <br/> **3. 在`settings.py`中启用 MyspiderPipeline** ```python ITEM_PIPELINES = { # 300为权重,数字越小权重越大,越先被执行 'mySpider.pipelines.MyspiderPipeline': 300, } ```