Scrapy 框架的 pipelines 参数详解

pipelines 的使用

  1. 在 pipelines.py 中创建 pipelines 的类。(也可用默认存在的类)
class PipelinesTest:

    def process_item(self, item, spider):
        print(item)
        return item
  1. 编写数据处理的函数,函数格式是固定的。
def process_item(self, item, spider):
	# 中间这里插入需要做的事情,其他的都别改
    return item
  1. 在 settings.py 中启用 pipelines
    在 settings.py 中找到如图所示代码
    image
    取消注释
    image
    再把名字给改成自己的,就行了
    image
    可以有多条管道,所以可以不改名字,而是把自己创建的管道的名字加进去,像这样
    image

  2. 编写 spider 返回的数据格式。(在 items.py 中编写,编写格式也是固定、不能更改的)

class PipelinesTestItem(scrapy.Item):
    name = scrapy.Field()

name 可以改别的,也可以多加几个,但格式得固定,例如

class PipelinesTestItem(scrapy.Item):
    name = scrapy.Field()
    hentai = scrapy.Field()
    homula = scrapy.Field()
  1. 在 spider 中导入 items
    from ..items import PipelinesTestItem

  2. 通过 yield(生成器方式) 返回数据

def parse(self, response):
    name = "丘比必死,圆神永存"
    print(name)
    yield PipelinesTestItem(name=name)

一个例子

spider.py 代码
import scrapy
from ..items import PipelinesTestItem


class TestSpider(scrapy.Spider):
    name = 'douban'
    allowed_domains = ['movie.douban.com']
    start_urls = ['https://movie.douban.com/top250?start=0&filter=']

    def parse(self, response):
        name = "丘比必死,圆神永存"
        print(name)
        yield PipelinesTestItem(name=name)
itesms.py 代码
# Define here the models for your scraped items
#
# See documentation in:
# https://docs.scrapy.org/en/latest/topics/items.html

import scrapy


class SpridertestItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    pass


class PipelinesTestItem(scrapy.Item):
    name = scrapy.Field()

pipelines.py 代码
# Define your item pipelines here
#
# Don't forget to add your pipeline to the ITEM_PIPELINES setting
# See: https://docs.scrapy.org/en/latest/topics/item-pipeline.html


# useful for handling different item types with a single interface
from itemadapter import ItemAdapter


class SpridertestPipeline:
    def process_item(self, item, spider):
        return item


class PipelinesTest:

    def process_item(self, item, spider):
        print(item)
        return item
如果看不懂,或者不知道哪里出了问题,可以直接把代码CV上 pycharm 试试,然后再一点点对比自己的。

第3步在 settings.py 启用 pipelines ,考虑到代码太多不好对比我就没放了,跟着第三步做就对了。

pipelines 常用的函数

一如既往地,格式是固定如下的。

  1. open_spider(self, spider) : 开启及执行
  2. process_item(self, item, spider) : 数据处理
  3. close_spider(self, spider) : 爬虫结束时调用
class PipelinesTest:

    def open_spider(self, spider):
        print('我是开始')

    def process_item(self, item, spider):
        print(item)
        return item

    def close_spider(self, spider):
        print('我是结束')

简单粗暴,这串代码全是在 pipelines.py 里的,复制上去,自己动手改一下,print 一下就知道大概的一个逻辑思路了。


如果觉得写的还不错的话,可以关注支持一下,哪有问题的话也可以随意评论的,大不了聊天嘛

posted @   淦丘比  阅读(127)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示