欢迎光临
我们一直在努力

爬虫实战 | Python操作MySQL数据库

Python操作MySQL数据库前要先安装对应模块:

pip install mysqlclient

下面是链接MySQL的代码:

import MySQLdb

conn= MySQLdb.connect(
        host='地址',
        port = 端口号,
        user='用户名',
        passwd='密码',
        db ='数据库名',
        charset='utf8'  #设置编码格式
        )
print(conn) #打印一下,查看是否链接成功
# 关闭数据库连接
conn.close()

因为数据库可能会链接失败,所以我们加一个错误处理机制:

try:
    conn= MySQLdb.connect(
            host='地址',
            port = 端口,
            user='用户名',
            passwd='密码',
            db ='数据库名',
            charset='utf8'
            )
    print(conn)
except MySQLdb.Error as e:
    print('Error:%s' % e)

下面下做一个简单的例子和前面的只是结合起来,通过操作游标,进行SQL查询,然后把查到的数据存储到一个列表中:

# 使用cursor()方法获取操作游标
cursor = conn.cursor()

# 使用execute方法执行SQL语句
cursor.execute("SELECT VERSION()")

# SQL查询语句
sql = "SELECT * FROM `book_data_in` WHERE 1"

#设置一个存储数据的数组
book_list = []

try:
   # 执行SQL语句
   cursor.execute(sql)
   # 获取所有记录列表
   results = cursor.fetchall()
   for row in results:
      book_list=({
          'id' : row[0],
          'title' : row[1],
          'price' : row[2],
          'link' : row[3],
          'store' : row[4],
      })

      # 打印结果
      print(book_list)
except:
   print("Error: unable to fecth data")

返回结果如下:

{'id': 1, 'title': '娱乐至死', 'price': 37.5, 'link': 'http://blog.sanrenyan.com', 'store': '散人研博客'}
{'id': 2, 'title': '与神对话', 'price': 37.5, 'link': 'http://blog.sanrenyan.com', 'store': '散人研博客'}
{'id': 3, 'title': '小王子', 'price': 37.5, 'link': 'blog.sanrenyan.com', 'store': '散人研博客'}
{'id': 4, 'title': '硅谷禁书', 'price': 37.5, 'link': 'http://blog.sanrenyan.com', 'store': '散人研博客'}
{'id': 5, 'title': 'MySQL从入门到放弃', 'price': 37.5, 'link': 'http://blog.sanrenyan.com', 'store': '散人研博客'}
{'id': 6, 'title': '爬虫教程', 'price': 37.5, 'link': 'http://blog.sanrenyan.com', 'store': '散人研博客'}
{'id': 7, 'title': 'VUE.js教程', 'price': 37.5, 'link': 'http://blog.sanrenyan.com', 'store': '散人研博客'}

今天有点累了>>>先去打会儿应用联盟,等明天再回来继续更新>>>增删改

又是敲代码的一天,接着上面的进行介绍。

对表执行插入操作:

# 使用cursor()方法获取操作游标
cursor = conn.cursor()
# SQL插入语句
sql = "INSERT INTO `book_data_in` (`title`,`price`,`link`,`store`) VALUE('大学政治',30.5,'http://blog.sanrenyan.com','大学政治教育');"

try:
   # 执行SQL语句
   cursor.execute(sql)
   # 如成功执行,则进行保存数据库
   conn.commit()
except:
   conn.rollback() #回滚,如果出现错误则不进行修改

运行之后取数据看一下,发现的确插入成功了,这里有几点要注意一一下:

  • 需要通过游标操作数据库
  • 执行过插入操作后要进行保存commit()
  • 若插入失败,要进行回滚rollback()

删除和插入方法相同,都要进行保存和回滚操作,如下面删除`id`>4的所有行:

# 使用cursor()方法获取操作游标
cursor = conn.cursor()
# SQL删除语句
sql = "DELETE FROM `book_data_in` WHERE `id` > 4"

try:
   # 执行SQL语句
   cursor.execute(sql)
   # 如成功执行,则进行保存数据库
   conn.commit()
except:
   conn.rollback() #回滚,如果出现错误则不进行修改

修改数据同样如此,如下面把`id`=2的`title`修改为乔布斯自传:

# 使用cursor()方法获取操作游标
cursor = conn.cursor()
# SQL修改
sql = "UPDATE `book_data_in` SET  `title` = '乔布斯自传' WHERE `id` = 2"

try:
   # 执行SQL语句
   cursor.execute(sql)
   # 如成功执行,则进行保存数据库
   conn.commit()
except:
   conn.rollback() #回滚,如果出现错误则不进行修改

最后学习一样创建表的操作:

# 使用cursor()方法获取操作游标
cursor = conn.cursor()

# 如果数据表已经存在使用 execute() 方法删除表。
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# 创建数据表SQL语句
sql = """CREATE TABLE EMPLOYEE (
         FIRST_NAME  CHAR(20) NOT NULL,
         LAST_NAME  CHAR(20),
         AGE INT,  
         SEX CHAR(1),
         INCOME FLOAT )"""

cursor.execute(sql)

好了,最简单的一些python操作mysql方法就先学到这里,如果项目有额外需要,再回来进行补充。

赞(1) 打赏
未经允许不得转载:散人研 » 爬虫实战 | Python操作MySQL数据库
分享到: 更多 (0)

评论 抢沙发

4 + 3 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏