有关爬虫pipelines管道文件(一)

响应CSDN小助手的要求,关于pipelines的内容部分来了!!

具体的爬虫可以去看作者的另一篇文章Scrapy爬虫基础讲解及案例-CSDN博客

1.1在pipelines.py中定义对数据的操作

  1. 定义一个管道

  2. 重写管道类的process_item方法

  3. process_item方法处理完item之后必须返回给引擎

class MyspiderPipeline:
    def process_item(self, item, spider):
        print('itcast',item)
        #默认使用完管道之后需要将数据返回给引擎
        return item

1.2配置并启用管道

✔未启用管道之前运行爬虫文件

✔启用爬虫文件

ITEM_PIPELINES = {
   "myspider.pipelines.MyspiderPipeline": 300,  #目录.文件.定义的管道类
   "myspider.pipelines.MyspiderPipeline1": 299, #数值越小优先执行
}
  • Enabled item pipelines:激活的管道

    可以有多个管道

✔启用管道之后运行爬虫文件(这里日志太多,vscode终端长度不够,使用windows自带的终端--命令提示符或者powershell)

✔查看打印

  • 红框:原先日志自动打印的

  • 黄框:管道自己设置打印的

1.3往文件中输出

from itemadapter import ItemAdapter
import json
​
class MyspiderPipeline:
    def __init__(self):
        self.file = open('itcast.json','w')     #打开(创建)itcast.json并写入
    def process_item(self, item, spider):
        # print('itcast',item)
        #将字典数据序列化
        json_data = json.dumps(item,ensure_ascii=False) + ',\n'     #修改json字符串编码
        #将数据写入文件
        self.file.write(json_data)
        #默认使用完管道之后需要将数据返回给引擎
        return item
    def __del__(self):
        self.file.close()

✔运行结果

  • 这是没有修改ensure_ascii时管道以自动的Unicode转义序列输出的itcast.json文件

  • 这是关闭ensure_ascii后管道打印出的itcast.json文件

    (这里由于vscode字符编码的一些插件或者windows系统版本的问题会有乱码的问题)

(但是在WPS中打开就没有任何报错)q(≧▽≦q)

配置项中键为使用的管道类,管道类使用.进行分割,第一个为项目目录,第二个为文件,第三个为定义的管通类配置项中值为管道的使用顺序,设置的数值约小越优先执行,该值一般设置为1000以内。

到这里其实作者只是讲解了部分有关pipelines文件的说明,还有更多补充期待作者的下一篇文章

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值