python3爬虫系列09之爬虫数据存入MySQL数据库

python3爬虫系列09之爬虫数据存入MySQL数据库

1. 前言

在上一篇当中呢,python3爬虫系列08之新版动态智联爬虫,我们已经把智联招聘的某地区,某岗位,某页数的所有数据爬下来了,然后保存为了一个text文件。

这一篇呢,我们说说把数据存入数据库的操作,毕竟真的项目爬虫出来,数据肯定是要入库的。

反正我以前搞java的,所以还是要学习一下的关于python怎么操作数据库的?

说到数据库呢。在当今的互联网企业中,最常用的数据库模式主要有两种,即关系型数据库和非关系型数据库。
python3爬虫系列09之爬虫数据存入MySQL数据库_第1张图片
数据库现在分:

SQL关系型数据库:常见的MySQL和Oracle数据库、SQL Server

NoSQL非关系型数据库:

键值存储数据库:Redis、
列存储数据库:HBase、
面向文档数据库:MongoDB、

更多请参考百度百科:数据库。

这里以Mysql为例(主要是其他我也不会啊~):

为了使python连接上数据库,你需要一个驱动,这个驱动是用于与数据库交互的库。是一个叫PyMySQL 的工具。

2.什么是 PyMySQL?

PyMySQL : 这是一个使Python连接到MySQL的库,它是一个纯Python库。

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

手动安装:
PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL

命令安装:
$ pip install PyMySQL

PyMySQL支持的python版本:

python2
python2.7
python3
python version >=3.4

查看PyMySQL版本信息,运行以下语句:

pip show PyMySQL

图示:
python3爬虫系列09之爬虫数据存入MySQL数据库_第2张图片

算了,我不就懒得科普了。

3. 数据库建立

继续上一篇文章的爬取结果呢,我们是存入在txt中,现在要存到Mysql数据库中去。

所以,首先要打开你的mysql。
打开你自己的Mysql管理软件,我的是navicat ,然后新建一个数据库py_zljob,再新建一张表zljob,字段如下:
python3爬虫系列09之爬虫数据存入MySQL数据库_第3张图片
当然你可以运行如下SQL来自动建立:

CREATE TABLE `zljob` (
  `id` int(10) NOT NULL auto_increment COMMENT 'id',
  `jobName` varchar(30) default '' COMMENT '岗位',
  `city` varchar(30) default NULL COMMENT '工作地点',
  `workingExp` varchar(30) default NULL COMMENT '工作经验',
  `salary` varchar(30) default NULL COMMENT '薪资',
  `eduLevel` varchar(30) default NULL COMMENT '学历',
  `company` varchar(30) default NULL COMMENT '公司名',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=361 DEFAULT CHARSET=utf8;

这样建立好了我们用来存数据的数据表以后,就可以存数据了。

4. 撸码入库

继续上一篇文章的代码。

连接数据库前,请先确认以下事项:

• 已经创建了数据库 py_zljob.
• 在py_zljob数据库中您已经创建了表 zljob

在上次的代码基础上呢,我们新建一个操作数据库的函数。

代码如下:

# 入库Mysql
def save_data_sql(content):
    #print(type(content)) # 是生成器generator对象
    try:
        # 打开数据库连接-填入你Mysql的账号密码和端口
        conn = pymysql.connect(host='localhost',user='root',password='root',db='py_zljob')
        # 使用 cursor() 方法创建一个游标对象 cursor
        mycursor = conn.cursor()
        print('对应的是:',content['jobName'])
        sql = "INSERT INTO zljob(jobName,city,workingExp,salary,eduLevel,company) \
               VALUES (%s,%s,%s,%s,%s,%s)"
        params = (content['jobName'],content['city'],content['workingExp'],content['salary'],content['eduLevel'],content['company'])
        # 调用
        mycursor.execute(sql,params)
        #sql='select * from zljob'
        # 执行sql语句
        conn.commit()
        # 获取所有记录列表
        results = mycursor.fetchall()
        for row in results:
            print(row)
        print('成功插入', mycursor.rowcount, '条数据')
    except Exception:
        # 发生错误时回滚
        conn.rollback()
        print('发生异常')
    # 关闭数据库连接
    mycursor.close()
    conn.close()

然后在main函数中,调用写的这个函数。
python3爬虫系列09之爬虫数据存入MySQL数据库_第4张图片
运行一下:
python3爬虫系列09之爬虫数据存入MySQL数据库_第5张图片
打开数据库里面的表:
python3爬虫系列09之爬虫数据存入MySQL数据库_第6张图片

入库成功,好了,这就是我们的关于python3爬虫数据存入Mysql数据库的相关操作了。

更多关于python3使用PyMySQL对mysql增删查改工具类,请看:

python3使用PyMySQL对mysql增删查改工具类


下一篇是数据可视化了。源码在最后一篇哟,不要急,留下邮箱也可以发。

题外话:

注:如果你的MySQL的版本≥5.5.3,可以把编码设置为utf8mb4,utf8mb4和utf8完全兼容,但它支持最新的Unicode标准,可以显示emoji字符。

还不赶紧cmd打开,看看你的mysql?

mysql> show variables like ‘%char%’;

看到utf8字样就表示编码设置正确。

你可能感兴趣的:(python爬虫系列)