Python爬虫--数据存储

数据存储 txt文件

占坑
代码

实例代码

Json文件

实例代码

csv文件 数据库存储

数据量多且复杂,存储到文件的数据管理不方便,效率较低。

将数据存储到数据库中,方便存储和管理。

关系型数据库

概念:

关系型数据库是建立在关系模型基础的数据库。

借助于集合代数等数学概念和方法处理数据库中的数据。

由多张能互相连接的二维行列表格组成。

MYSQL mysql优势

开源(可根据需要修改),免费

支持大型数据库,可以处理拥有上千万条记录的大型数据库

核心线程完全是多线程,支持多处理器

mysql安装 sudo apt install mysql-server 启动服务器

启动服务

sudo service mysql start

重启服务

sudo service mysql restart

查看服务进程

ps -axu|grep mysqld 启动客户端

-u 表示用户名, -p 表示密码

mysql -uroot -p # -p后输入root用户密码 配置支持远程连接

MySQL默认不支持远程连接,只能本主机连接

配置:

找到MySQL配置文件并修改

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 将bind-address=127.0.0.1注释

登录MySQL,修改Host值

登录 mysql -uroot -p 选择使用MySQL数据库 use mysql; 更新,将root原来的 Host值(localhost) 改成 % localhost 表示只能本地登录,% 表示任何机器都可以登录 update user set Host="%" where User = "root"; 刷新权限信息让所做的设置马上生效 flush privileges; 退出登录 exit;

重启服务

sudo service mysql restart

测试远程连接

-h 参数 指定客户端登录的MySQL主机名,登录本机,该参数可省略

如果是远程连接,则必须指定其值是远程主机的IP地址,这里的192.168.1.150就是主机的IP地址

mysql -h192.168.1.150 -uroot -p 数据库命令

查看数据库

show databases;

创建数据库

create database 数据库名 charset=utf8;

删除数据库

drop database 数据库名;

切换数据库

use 数据库名;

查看当前选择的数据库

select database(); 表命令

查看当前数据库中所有表

show tables;

创建表

create table 表名(列及类型);

修改表

alter table 表名 add|modify|drop 列名 类型;

删除表

drop table 表名;

查看表结构

desc 表名;

更改表名称

rename table 原表名 to 新表名;

查看表的创建语句

show create table 表名; 增删改查命令

新增

insert into 表名 (field, field, ..., fieldN) values(value, value, ..., valueN);

删除

delete from 表名 [where 条件];

更新

update table_name set field = new-value, field = new-value [where 条件];

查询

select field, field from table_name [where 条件]; 使用命令

流程

service mysql start # 启动mysql mysql -uroot -p1234 # 登录mysql create database python default charset=utf8; # 创建python数据库 use python; # 切换到python数据库 -- 创建grade表(主键表) create table grade( id int primary key auto_increment, name varchar(100) not null ); -- 创建student表(外键表) create table student( id int primary key auto_increment, name varchar(100) not null, sex char(1) not null, phone char(11) unique not null, address varchar(100) default \'郑州\', birthday date not null, gid int not null, foreign key(gid) references grade(id) ); -- 年级(grade)表中插入数据 insert into grade(name) values(\'一年级\'); insert into grade(name) values(\'二年级\'); -- 学生(student)表中插入数据 insert into student(name, sex, phone, address, birthday, gid) values(\'王强\', \'男\' ,\'15583678666\' , \'开封\', \'1990-2-4\', 1); insert into student(name, sex, phone, address, birthday, gid) values(\'李丽\', \'女\', 16683678659\'\', \'郑州\', \'1991-3-12\', 2); select * from grade; # 查询年级(grade)表中的数据 select * from student; # 查询学生表数据 update student set phone = \'16683678657\' where id = 2; # 更改id为2的学生电话号码 delete from student where id = 1; # 删除id为1的学生 Python与MySQL交互

安装pymysql模块

pip install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple

创建连接

\'\'\'Python与MySQL交互-创建连接\'\'\' import pymysql 获取连接对象 conn = pymysql.Connect(host=\'localhost\', port=3306, db=\'python\', user=\'root\', passwd=\'1234\', charset=\'utf8\') print(conn) 关闭 conn.close()

说明:

MySQL的服务器必须先启动才可以连接成功

pymysql.Connect用来创建数据库连接对象

参数

host=\'localhost\', 表示连接主机是本机,也可指定IP地址 port=3306,主机端口号,默认是3306

host=\'localhost\',连接主机,localhost表示连接主机是本机,也可使用指定IP地址

port=3306, 主机端口号,mysql默认端口号为3306,一般不用更改

db=\'python\', 连接的数据库,这里连接的数据库是python

user=\'root\', 用户名

passwd=\'1234\',密码

charset=\'utf8\', 编码格式

连接对象使用完毕后要关闭,释放相关资源

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpjgd.html