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()