目录
- 1. excel文件的初始化与保存
- 2. 配置管道使用
- 运行测试
- 总结
欢迎关注 『scrapy爬虫』 专栏,持续更新中
欢迎关注 『scrapy爬虫』 专栏,持续更新中
1. excel文件的初始化与保存
安装操作excel文件的库
pip install openpyxl
钩子函数(Hook functions)是指在特定事件发生或特定条件满足时自动调用的函数。在编程中,钩子函数通常用于扩展或自定义框架、库或应用程序的行为,允许开发人员在关键点注入自己的逻辑。
引入概念,钩子函数(callback),这里的close_spider
和process_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爬虫』 专栏,持续更新中
『未完待续』