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

目录

    • 1. excel文件的初始化与保存
    • 2. 配置管道使用
    • 运行测试
    • 总结


欢迎关注 『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爬虫』 专栏,持续更新中
『未完待续』


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/458210.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++面试问题收集

0 持续更新中 目录 0 持续更新中 1 C语言相关 1.1 malloc/free和new/delete区别 1.2 内存泄漏 1.3 堆区和栈区的区别 1.4 宏定义和const的区别 1.5 多态 1.6 类中的静态成员变量 2 操作系统相关 2.1 进程和(用户)线程的区别 2.2 系统调用 2.3…

Rockchip android10.1默认开启虚拟键盘

Rockchip android10.1默认开启虚拟键盘 问题描述解决方法 郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Rockchip OS:Android 10.1 Kernel: 4.19 问题描述 客户需要在插上外接实体键盘的时候&#xff…

QT使用dumpcpp为COM生成h及cpp的方式,COM是C#的dll注册的

目录 1.C#的dll注册为COM,采用bat的方式 2.通过qt的dumpcpp来生成h及cpp文件 3.h文件和cpp文件处理。 台达数控系统的C#的dll dumpcpp用的tlb文件 dumpcpp生成的原生h文件 dumpcpp生成的原生cpp dump生成后的的原生cpp文件修改后的cpp文资源 dump生成后的的…

Element-Plus: Select组件实现滚动分页加载

Element-Plus的select组件并没有自带滚动分页加载的功能,其虽然提供了自定义下拉菜单的底部的方式可以自定义上一页及下一页操作按钮的方式进行分页加载切换: 但如果不想通过点击分页按钮的方式,利用滚动触底进行下一页加载的话,…

近视用什么灯对眼睛好?多款防近视护眼台灯推荐

随着社会竞争愈发激烈,对于办公族、学生党而言,用眼过度是最频繁不过的事情了,不少低年级的学生都已经早早佩戴上了近视眼镜。所以想要保护眼睛健康,一款光源舒适的台灯是必不可少的,不过市面上也有很多劣质台灯&#…

注意力机制Attention、CA注意力机制

一、注意力机制 产生背景: 大数据时代,有很多数据提供给我们。对于人来说,可以利用重要的数据,过滤掉不重要的数据。那对于模型来说(CNN、LSTM),很难决定什么重要、什么不重要,因此…

案例分析篇06:数据库设计相关28个考点(17~22)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

Kafka-生产者报错javax.management.InstanceAlreadyExistsException

生产者发送消息到 kafka 中,然后控制台报错 然后根据日志查看 kafka 的源码发现了问题原因 说的是MBean已经注册了,然后报异常了,这样就会导致生产者的kafka注册失败, 原因是项目上生产者没有配置clientId,默认都是空导致的, 多个生产者(项目)注册到kafka集群中的 id 都相同。 …

Spring Boot 中@Scheduled是单线程还是多线程?

在开发Spring Boot应用程序时,定时任务是一项常见的需求。Spring Boot提供了Scheduled注解,可用于将方法标记为定时任务,并在预定的时间间隔内执行。那么Scheduled注解的执行方式是单线程执行,还是多线程执行?Schedule…

Python爬虫实战入门:豆瓣电影Top250(保你会,不会来打我)

文章目录 需求所需第三方库requests模块lxml模块了解 lxml模块和xpath语法xpath语法-基础节点选择语法 实战教程完整代码 需求 目标网站: https://movie.douban.com/top250 需求: 爬取电影中文名、英文名、电影详情页链接、导演、主演、上映年份、国籍、类型、评分、评分人数, …

振弦采集仪的操作方法及数据处理技术的一般步骤

振弦采集仪的操作方法及数据处理技术的一般步骤 岩土工程监测中,河北稳控科技振弦采集仪是用来测量土壤或岩石中的振动特性的仪器。下面是振弦采集仪的操作方法及数据处理技术的一般步骤: 1. 准备工作:安装振弦采集仪的支架或支架&#xff0…

文心一言 VS 讯飞星火 VS chatgpt (215)-- 算法导论16.2 2题

二、设计动态规划算法求解 0-1 背包问题,要求运行时间为 O(nW),n为商品数量,W是小偷能放进背包的最大商品总重量。如果要写代码,请用go语言。 文心一言: 0-1 背包问题是一个典型的动态规划问题,其目标是在…

如何高效接入 Flink:Connecter / Catalog API 核心设计与社区进展

摘要:本文整理自阿里云实时计算团队 Apache Flink Committer 和 PMC Member 任庆盛在 FFA 2023 核心技术专场(二)中的分享,内容主要分为以下四部分: 1. Source API 2. Sink API 3. 将 Connecter 集成至 Table /SQL A…

运动想象 (MI) 迁移学习系列 (9) : 数据对齐(EA)

运动想象迁移学习系列:数据对齐(EA) 0. 引言1. 迁移学习算法流程2. 欧式对齐算法流程3. 与RA算法进行对比4. 实验结果对比5. 总结欢迎来稿 论文地址:https://ieeexplore.ieee.org/abstract/document/8701679 论文题目:Transfer Le…

macOS Ventura 13.6.5 (22G621) Boot ISO 原版可引导镜像下载

macOS Ventura 13.6.5 (22G621) Boot ISO 原版可引导镜像下载 3 月 8 日凌晨,macOS Sonoma 14.4 发布,同时带来了 macOS Ventru 13.6.5 和 macOS Monterey 12.7.4 安全更新。 macOS Ventura 13.6 及更新版本,如无特殊说明皆为安全更新&…

Python数据分析-pandas3

1.pandas的作用: numpy能够帮助我们处理数值,但是pandas除了处理数值之外(基于numpy),还能够帮助我们处理其他类型的数据。 2.pandas之Series创建: 3.pandas之Series切片和索引 4.缺失值处理 5.常用的统计…

【阅读论文】智能数据可视分析技术综述

智能数据可视分析技术综述 文章结构 中文引用格式: 骆昱宇, 秦雪迪, 谢宇鹏, 李国良. 智能数据可视分析技术综述. 软件学报, 2024, 35(1): 356–404. http://www.jos.org.cn/1000-9825/6911.htm

深度学习环境搭建

前言 因为一些原因,我需要更换一台新的服务器来跑深度学习。 这篇文章记录了我在新的远程服务器上搭建深度学习环境的过程。 基本情况 本人采用笔记本电脑连接远程服务器的方式跑深度学习代码。 笔记本电脑环境: 远程服务器环境: 环境搭…

PHP<=7.4.21 Development Server源码泄露漏洞 例题

打开题目 dirsearch扫描发现存在shell.php 非预期解 访问shell.php&#xff0c;往下翻直接就看到了flag.. 正常解法 访问shell.php 看见php的版本是7.3.33 我们知道 PHP<7.4.21时通过php -S开起的WEB服务器存在源码泄露漏洞&#xff0c;可以将PHP文件作为静态文件直接输…