『scrapy爬虫』04. 使用管道将数据写入excel(详细注释步骤)

48 篇文章 16 订阅
14 篇文章 3 订阅


欢迎关注 『scrapy爬虫』 专栏,持续更新中
欢迎关注 『scrapy爬虫』 专栏,持续更新中

1. excel文件的初始化与保存

安装操作excel文件的库

pip install openpyxl

钩子函数(Hook functions)是指在特定事件发生或特定条件满足时自动调用的函数。在编程中,钩子函数通常用于扩展或自定义框架、库或应用程序的行为,允许开发人员在关键点注入自己的逻辑。

引入概念,钩子函数(callback),这里的close_spiderprocess_item都不是我们主动调用的函数,当我们在前面的spider中vield数据时候,自动触发了process_item,当我们结束爬虫的时候,自动运行了process_item.

pipelines.py

import openpyxl

class MyscrapyPipeline:
    # 初始化我们的excel文件
    def __init__(self):
        self.wb=openpyxl.Workbook()
        self.ws=self.wb.active #拿到默认的被激活的工作表
        self.ws.title="top250" #工作表的名字改为 top250
        self.ws.append(("标题","评分","主题")) #增加表头
    
    # 开始爬虫时候要进行的操作
    def open_spider(self,spider):
        pass
    # 关闭爬虫时候要进行的操作
    def close_spider(self,spider):
        #保存Excel文件
        self.wb.save("电影数据.xlsx")
        #关闭工作簿(Workbook)和工作表(Worksheet)
        self.wb.close()

    # ,"process_item" 是用于处理爬取到的数据并进行后续处理的方法,item是我们前面yeild返回的数据
    def process_item(self, item, spider):
        title=item.get("title","")
        score=item.get("score","")
        quato=item.get("quato","")
        self.ws.append((title,score,quato))#将得到的数据一行写入excel
        return item


2. 配置管道使用

settings.py
在这里插入图片描述

# 配置数据管道
# 配置数据管道
ITEM_PIPELINES = {
    'myscrapy.pipelines.MyscrapyPipeline': 300, #数字越小先执行,后期可以有多个管道
    # '你的项目名.pipelines.刚刚管道的写的类名': 权重, #权重越小先执行,后期可以有多个管道
}

运行测试

注意运行都要在虚拟环境下运行,如果你用了虚拟环境的话,不知道为什么我一开始明明pycahrm都能显示安装好了openpyxl,实际上运行后提示没有模块,我在虚拟环境里pip install openpyxl一波就好了

activate(进入虚拟环境)
scrapy crawl douban

执行启动命令

scrapy crawl douban

在这里插入图片描述


总结

大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2024 mzh

Crated:2024-3-1

欢迎关注 『scrapy爬虫』 专栏,持续更新中
欢迎关注 『scrapy爬虫』 专栏,持续更新中
『未完待续』


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发现你走远了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值