pyhton爬虫学习(十六):scrapy框架通过管道pipeline存储成文件

前面已经讲了scrapy框架的创建和运行,包括一些中间件的的设置和使用。 现在开始讲如何通过管道pipelines进行数据的存储,主要讲存储成文件形式。
我们知道创建的scrapy项目有一个pipelines.py的文件,这个文件就是用来存储我们定义的管道处理类的地方。不过要使用pipelines,首先需要在settings.py文件里面配置pipelines。
在setting.py文件里面找到关于pipelines的设置部分,默认设置如下所示。

# Configure item pipelines
# See https://doc.scrapy.org/en/latest/topics/item-pipeline.html
#ITEM_PIPELINES = {
#    'hello.pipelines.HelloPipeline': 300,
#}

在上面的代码中,‘hello.pipelines.HelloPipeline’中的hello为项目名(即scrapy项目核心目录名),pipelines代表hello目录下的pipelines.py文件的文件名,HelloPipeline代表对应的pipelines文件里的类。所以‘hello.pipelines.HelloPipeline’相当于告诉系统pipelines文件在哪里。同时又说明了pipelines文件里面对应的类是什么。该项设置的格式为

“核心目录名称.pipelines文件名.对应类名”

这里我们先讲如何存储到文件里面。所以在pipelines.py文件里面定义一个FilePineline类。 默认配置修改为

ITEM_PIPELINES = {
 'hello.pipelines.FilePineline': 300,
}

打开项目里面的pipelines.py文件,里面的类修改为FilePineline,并将代码修改如下。

class FilePineline(object):
    # init()为类的初始化方法,开始的时候调用
    def init(self):
        # 首先用写入的方式创建或者打开一个普通文件用于存储爬取到的数据
        self.file = open("/Users/zhouruiyong/Desktop/python/hello/hello/hello.txt","w")
        
    #processitem()为pipelines中的主要处理方法,默认会自动调用     
    def processitem(self, item, spider):  
        #设置每行要写的内容        
        l = str(item["title"]) +"\n"        
        #此处输出,方便程序的调试         
        print
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值