1. 程式人生 > >python爬蟲系列(4.3-資料儲存到mysql資料庫中)

python爬蟲系列(4.3-資料儲存到mysql資料庫中)

一、如果你對mysql資料庫還不太熟悉

 

二、基本操作

1、在python中使用pymysql連線mysql

2、安裝包

pip3 install pymysql

3、定義一個建立資料庫的方法(或者手動、SQL語句建立資料庫)

# 定義一個建立資料庫的函式

def create_table():

    # 建立資料庫連線

    db = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='nodejs', port=3306,

                        charset='utf8')

    # 獲取資料庫控制代碼

    cursor = db.cursor()

    cursor.execute('DROP TABLE IF EXISTS food')

    # 建立article表的sql語句

    sql = """

        create table if not exists food(

          id INT NOT NULL AUTO_INCREMENT,

          name VARCHAR(50) ,

          price FLOAT,

          address VARCHAR(100),

          time DATE,

          PRIMARY KEY (`id`)

        )

    """

    try:

        # 執行sql語句

        cursor.execute(sql)

        # 提交事務

        db.commit()

        print('建立表成功')

    except pymysql.Error as e:

        # 資料回滾

        db.rollback()

        print(e)

    finally:

        if db:

            db.close()

三、爬取的資料存入到資料庫中

1、依然使用之前抓取農產品的爬蟲資料

2、在類中新增插入資料庫的方法

def insert_table(self, name, price, address, time):

    """

    對爬取的資料插入到資料庫中

    :param price:

    :param address:

    :param time:

    :return:

    """

    # 建立資料庫連線

    db = pymysql.connect(host='127.0.0.1', user='root', passwd='root', db='nodejs', port=3306,

                        charset='utf8')

    # 獲取資料庫控制代碼

    cursor = db.cursor()

    # 插入資料的sql語句

    sql = 'insert into food (name, price, address, time) values (%s, %s, %s, %s)'

    try:

        # 執行 sql 語句

        value = (name, price, address, time)

        cursor.execute(sql, value)

        # 提交事務

        db.commit()

        return True

    except BaseException as e:  # 如果發生錯誤則回滾

        db.rollback()

        print(e)

    finally:  # 關閉遊標連線

        cursor.close()

        # 關閉資料庫連線

        db.close()