Python爬虫存储数据 - 使用MySQL存储

239 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第4天,点击查看活动详情。 放假就一直拖延,没有行动力,非得是接近十点了才开始学习开始写文章,可恶有点控制不住自己了.

关系型数据库MySql

以前学习Java的时候接触过它,是一个小型的关系型的数据库,有主键外键.关系型数据库数据的存储方式,是表,表中有列,每一个列代表一个字段,,每一行代表一条记录

连接数据库并创建表

import pymysql

db = pymysql.connect(host='我用的阿里云的云数据库.mysql.rds.aliyuncs.com',user='username', password='password', port=3306)
cursor = db.cursor()
cursor.execute('SELECT VERSION()')
data = cursor.fetchone()
print('Database version:', data)
cursor.execute("CREATE DATABASE spiders DEFAULT CHARACTER SET utf8")
db.close()

image.png 并且我们创建了一个名为spiders的数据库

image.png

连接spiders数据库并创建表

原有的数据库链接不变,添加新的参数,`db='新建的数据库名字'

import pymysql

db = pymysql.connect(host='URL地址',user='user你的名字', password='password', port=3306,db='spiders')//要填写自己的,添加新的参数
cursor = db.cursor()
sql = 'CREATE TABLE IF NOT EXISTS students (id VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, age INT NOT NULL, PRIMARY KEY (id))'
cursor.execute(sql)
db.close()

好的我们去数据库看一看执行的结果:

image.png 可以看到 我们成功地在新建的数据库中创建了一个student表.

尝试在新建的表中插入数据

其实就是写好SQL 然后去执行它,举个例子:

import pymysql

id = '20210404'
user = 'flynt'
age = 20
db = pymysql.connect(host='URL地址',user='user你的名字', password='password',  port=3306,db='spiders')
cursor = db.cursor()
sql = 'INSERT INTO students(id, name, age) values(% s, % s, % s)'
try:
    cursor.execute(sql, (id, user, age))
    db.commit()
except:
    db.rollback()


db.close()

如果顺利的话,应该在student表中会看到一天数据,ID=20210404,名字为flynt ok,让我们去表中查看一下:

image.png 基本用法就是先定义SQL然后再执行.学好写SQL这些问题就迎刃而解了