目標 網站:豆瓣TOP250榜單
選擇的原因 相似特徵: 詳情頁、翻頁√
(一) 安裝驅動器mysql-connector
mysql-connector 是 MySQL 官方提供的驅動器,我們用它來連接使用MySQL,輸入 pip 命令來安裝 mysql-connector:
ps: pip和conda list 均顯示安裝好了,測試安裝成功:
(二)Python完整代碼實例
mysql.connector_代碼示例 - CSDN博客 -
import mysql.connector
mydb = mysql.connector.connect(
host="localhost", # 數據庫主機地址
user="root", # 數據庫用戶名
passwd="123456", # 數據庫密碼
database="tptest" # 直連數據庫,如果數據庫不存在,會輸出錯誤信息
)
print(mydb)
mycursor = mydb.cursor() #獲取遊標,接下來用cursor提供的方法
''' 建表 : 只執行一次
mycursor.execute("create table template"
"(Id INT(10) NOT NULL AUTO_INCREMENT," # 記得設置主鍵
"PRIMARY KEY (Id)," # 主鍵第二行
"Team VARCHAR(100) NOT NULL,"
"Number INT NOT NULL,"
"Name VARCHAR(100) NOT NULL,"
"Positions VARCHAR(100) NOT NULL)"
)
'''
# 插入數據一:具體數值直接插入
mycursor.execute("insert into template(Team,Number,Name,Positions)values('湖人','25','詹姆斯','前鋒')")
# 插入數據二:賦值給變量,將變量的值插入mysql
data1 #假設已賦值,且type = list
data2 #假設已賦值,且type = list
#需轉換爲list類型才能插入mysql
sql_name = "".join(data1)
sql_age = "".join(data2)
sql = "INSERT INTO databaseName(DB_name,DB_age) VALUES (%s, %s)"
val = (sql_name,sql_age)
mycursor.execute(sql, val)
'''
mydb.commit() # 調用此方法進行提交
mycursor.close() # 關閉遊標
mydb.close() # 關閉數據庫連接
(三)常見報錯類型與解決辦法
報錯:python將數據插入mysql數據庫:Unknown column ‘xxx’ in 'field list’
解決方法:
1、如果是作插入操作“insert into…”的話,很可能是插入表的字段沒匹配對,比如有一些要求非空的字段,要檢查是否都賦了值。
2、查看插入時,賦值是否加了單引號:values(“’”+變量+“’”,’“’”+變量+“’”)。
3、總之,就是要仔細檢查sql語句,最好先去數據庫中,運行一下看看。
報錯:Mysql出現ERROR 1265 (01000): Data truncated for column ‘name’ at row 1
解決方法:賦值超出了name設置的寬度,因此去增大name的寬度。
報錯:Python ‘list’ cannot be converted to a MySQL type
解決方法:list類型無法插入mysql,需要先轉換數據類型:
data_str = "".join(data_list)