大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫,本期为数据存储。

概述

上期我们介绍到了文件存储,讲到了如何将数据存入各种文本文件之中,这种数据存储方式虽然很简便,但是存在很多问题,如:数据容易丢失、文件容易损坏、数据不易共享。因此本期将介绍更加实用的数据库存储方式。

本文将介绍三种流行的数据存储技术:

MySQL:一种关系型数据库管理系统,广泛用于企业级应用程序中

MongoDB:一种文档型数据库,适合处理半结构化数据和大规模数据集。

Redis:一种内存数据库,用于处理高速读写操作和缓存数据。

在本文中,我们将分别介绍 MySQL、MongoDB 和 Redis 的优缺点、适用场景以及如何选择最适合自己的数据库存储技术。作为爬虫初学者,本文将帮助你更好地理解这三种数据库存储技术的工作原理,以及如何选择适合你的应用程序的数据库。

MySQL

介绍

MySQL 是一种开源的关系型数据库管理系统,是目前最流行的关系型数据库之一。MySQL 是一个快速、高效的数据库系统,能够处理大量的数据和请求。另一个优点是它的灵活性和可扩展性,可以根据需要进行配置和调整,以满足不同应用的需求。MySQ L使用SQL(结构化查询语言)作为其查询和管理语言,SQL 是一种标准的关系型数据库语言,用于定义、操作和查询数据。

MySQL 被广泛用于 Web 开发、数据分析和数据存储等领域,是一个非常强大和受欢迎的数据库系统。同时,由于它是开源软件,因此可以在不支付任何费用的情况下使用和修改,这也使得它成为了很多开发者的首选数据库系统。

安装

首先需要安装 MySQL 数据库,在 MySQL官网 下载对应版本的文件进行安装。

安装好 MySQL 并确保 MySQL 能够正常运行后需要安装 Python 的第三方库 PyMySQL。

pip install pymysql

使用

在使用 Python 操作 MySQL 数据库前,我们需要先了解一下基本的 sql 语句。

sql 语句

SQL 即结构化查询语言 (Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言。

数据库操作

表操作

插入数据

修改数据

删除数据

查询数据

Python 操作 MySQL

连接数据库

host:IP地址

user:用户名

password:密码

database:库名

port:数据库端口

charset:字符集编码

连接数据库后,调用 cursor() 方法获取对数据库的操作游标,通过游标可以执行 sql 语句。

创建表

插入数据

上一步中我们创建了一张 students 表,现在我们要向 students 表中插入数据。

插入数据时,字符串类型的数据应被单引号或双引号包裹,否则会导致程序异常。在执行语句和提交语句时应该进行异常处理,发生异常时回滚数据,确保事务的原子性。

更新数据

删除数据

查询数据

在查询数据之前,我们可以重新创建一个新的表,插入一些数据来作为案例。

插入数据

执行查询语句后,可以调用 fetchall 方法获取查询结果。

MongoDB

介绍

上文中讲到的 MySQL 是一种关系型数据库,而 MongoDB 与下文中的 Redis 都属于非关系型数据库,也被称为 NoSQL(Not Only SQL)。MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

安装

首先需要安装 MongoDB 数据库,在 MongoDB官网 下载对应版本的文件进行安装。

安装好 MongoDB 并确保 MongoDB 能够正常运行后需要安装 Python 的第三方库 PyMongo。

pip install pymongo

使用

首先需要了解一下 MongoDB 的常用命令

Python 操作 MongoDB

连接数据库

插入数据

查询数据

比较符

更新数据

删除数据

Redis

介绍

Redis是一个基于内存的键值对存储系统,也被称为数据结构服务器,支持多种数据结构。它被广泛用于缓存、会话管理、消息队列等应用程序中。

安装

首先需要安装 Redis 数据库,安装好 Redis 并确保 Redis 能够正常运行后需要安装 Python 的第三方库 redis-py。

pip install redis

使用

Redis 基本数据类型

字符串:字符串(string)是 redis 最基本的数据类型,它可以包含任意数据。

哈希:哈希(hash)是一个键值对集合,是一个 string 类型的 field 和 value 的映射表。

列表:列表(list)是简单的字符串列表,按插入顺序排序,reids 列表支持在它的头尾部插入数据。

集合:集合(set)是字符串类型的无序集合,集合内的元素具有唯一性。

有序集合:有序集合(zset)与集合一样也是字符串类型的集合。不同的是有序集合中每个元素都会关联一个 double 类型的分数,它会通过分数来对元素进行升序排序。

Python 操作 Redis

连接数据库

字符串操作

redis 默认返回结果是字节,在连接时设置 decode_responses=True 可以将返回结果改为字符串。

哈希操作

列表操作

集合操作

有序集合操作

总结

以上讲到了三种数据库的基本使用方法以及它们各自的特点,MySQL 使用 sql 语句来对数据进行操作,比较成熟,但是在海量数据处理时效率会显著变慢。MongoDB是一个面向集合的,模式自由的文档型数据库,采用虚拟内存与持久化的存储方式,能够存储 JSON 风格的数据,能做到数据的高速读写,但是它不支持事务操作,且占用空间过大。Redis 则是一个纯粹的内存数据库,所有数据存放在内存中,它也支持数据的持久化,可以将数据存到磁盘中,它拥有多种数据类型,性能极高,但与 MongoDB 一样不适合存储大量数据。 因此在开发时,选择哪种数据库来存储数据需要以自己的实际需求为准。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部