当前位置: 首页 > news >正文

【Scrapy】Scrapy教程7——存储数据

上一节我们对爬虫程序的默认回调函数parse做了改写,提取的数据可以在Scrapy的日志中打印出来了,光打印肯定是不行的,还需要把数据存储,数据可以存到文件,也可以存到数据库,我们一一来看。

存储数据到文件

首先我们看看如何将数据存储到文件,在讲[[【Scrapy】Scrapy教程5——第一个Scrapy项目]]时,我们改写了prase函数,将首页存储到了一个shouye.html文件中,这便是我们的简单的数据存储,但这个存储方式是我们纯手写的代码,存的是整个页面,并非我们想要的数据。
这节主要讲存储数据,我们看下通过Scrapy命令直接存储数据,在这之前我们将parse函数修改下。

def parse(self, response):
        # 从获取的所有文章中提取链接和标题
        for article in response.css(".card")[1:]:
            yield {
   
                "title": article.xpath("./a").css("span::text").get(),
                "link": self.start_urls[0] + article.xpath("./a/@href").get(),
            }

然后,我们在到命令行中,运行以下命令。

scrapy crawl shouye -o titles.json

上面这条命令会将我们提取的数据存储到titles.json文件中,存储后的效果如下图所示。
在这里插入图片描述

我们会发现,存储的数据没有错,但是被整体存到了一个大的字典中,这不是我想要的结果,我只要数据一行一行的存储下来就好了,我们可以用以下命令。

scrapy crawl shouye -o titles.jsonl

没错,我们换个存储格式,就可以了。
在这里插入图片描述

存储数据到数据库

上面这种方法存储简单的数据可以,对于复杂结构的数据存储,就要引入Items和pipelines了。

Items

我们爬取页面的目标就是将非结构化数据提取为结构化数据,而Item就是Scrapy提供的一个类,用于定义通用输出数据格式的。Scrapy可以将提取的数据,作为Item返回,类似python的键值对。

Item Types

Scrapy通过itemadapter支持字典、Item对象、数据类对象、attrs对象几种Item类型。

  • 字典:类似Python的键值对字典
  • Item对象:Item提供的一个类似dict的API,可以支持更高级的特性
  • dataclass对象:允许定义具有字段名称的项目类,可以指定字段的类型和元数据
  • attrs对象:允许定义具有字段名称的项目类,可以指定字段的类型和元数据

相关文章:

  • UE5从入门到精通之多人游戏编程常用函数
  • C++ Primer 类的静态成员
  • 人工智能驱动的自动驾驶:技术解析与发展趋势
  • 雷龙CS SD NAND(贴片式TF卡)测评体验
  • tp6上传文件大小超过了最大值+验证文件上传大小和格式函数
  • 支持向量机(SVM)在 NLP 中的使用场景
  • Redis常见问题排查
  • AI训练中的常用指令
  • ue----git局域网内部署裸仓库,别的机器进行访问
  • 电脑连接wifi成功但上不了网 电脑网络故障解决方法
  • WinMerge深度解析:开源免费的文件与文件夹比较利器
  • 【Bug经验分享】Postgresql 项目链接不上,JDBC及Datasource可以连接,Navicat也可连接
  • c#爬取数据并解析json
  • PH热榜 | 2025-02-20
  • 美国第1代哈希散列算法SHA-1
  • 【自动化脚本工具】AutoHotkey (Windows)
  • 力扣的第34题 在排序数组中查找元素的第一个和最后一个位置
  • 深入理解 MySQL 8 C++ 源码:SELECT MOD(MONTH(NOW()), 2) 的函数执行过程
  • Cross-correlation 加速算法公式推导
  • 算法从0到100之【专题一】- 双指针第一练(数组划分、数组分块)
  • 上海112位全国劳动模范和先进工作者接受表彰,樊振东榜上有名
  • 外交部:欢迎外国朋友“五一”来中国
  • 《深度参与全球海洋治理的重大科技问题战略研究》一书出版发行
  • 全球首台环形CT直线加速器在沪正式开机,系我国自主研发
  • 巴达玛·利斯瓦达恭当选世界羽联主席,张军任理事会理事
  • 经济日报:AI时代如何寻找“你的赛道”