Python爬虫——使用Pipeline实现数据的处理(三)

使用scrapy实现爬虫实例——继上一章Item数据封装

一、Pipeline介绍

       当我们通过Spider爬取数据,通过Item收集数据后,就要对数据进行一些处理了,因为我们爬取到的数据并不一定时我们想要的最终数据,可能还需要进行数据的清洗以及验证数据的有效性。Scripy中的Pipeline组件就用于数据的处理,一个Pipeline组件就是一个包含特定接口的类,通常只负责一种功能的数据处理,在一个项目中可以同时启用多个Pipeline。
       以下是Pipeline的几种典型应用:
              清洗数据
              验证数据的有效性
              过滤掉重复数据
              将数据存到数据库

二、使用Pipeline实现数据的处理——将数据写入txt文件中

pipelines.py代码:
在pipelines.py中对数据进行处理

# -*- coding: utf-8 -*-

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


class BooksscrapyPipeline(object):
    def process_item(self, item, spider):
        #对数据进行处理—写入到txt文件中
        with open("mybooks.txt","a",encoding="utf-8") as f:
            oneStr = item["name"]+";"+item["price"]+"\n" #txt中不会自动换行
            f.write(oneStr)
        return item
        

功能释放: 由于系统对pipeline管道里面的功能是默认关闭的,我们需要将settings.py中的功能释放出来以便程序顺利执行

在这里插入图片描述
释放后为:

ITEM_PIPELINES = {
   'booksScrapy.pipelines.BooksscrapyPipeline': 300,
}

现在可以启动start.py文件来执行项目
start.py代码为:

from scrapy import cmdline
cmdline.execute('scrapy crawl books'.split())

执行结果:
系统自动生成mybooks.txt文件,并将数据保存到其中
在这里插入图片描述
在这里插入图片描述

三、总结

       本章讲了使用Pipeline对数据进行处理,先在pipelines.py中对数据进行处理,再将setting.py中的功能释放,最后执行项目。

发布了27 篇原创文章 · 获赞 7 · 访问量 2126

猜你喜欢

转载自blog.csdn.net/lucky_shi/article/details/104866873