暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python爬虫26 | 把数据爬取下来之后就存储到你的MySQL数据库。

小帅b和他的朋友们 2019-04-30
421


小帅b说过


在这几篇中会着重说说将爬取下来的数据进行存储


上次我们说了一种 csv 的存储方式


这次主要来说说怎么将爬取下来的数据保存到 MySQL 数据库


接下来就是


学习python的正确姿势



真香假设


本文假设你已经安装好MySQL


并且懂了一些 MySQL 的使用


例如简单“增删改查”的语句


如果你还没安装 MySQL


可以到以下链接去安装一下


https://www.mysql.com/downloads/




在你的 MySQL 中创建一个数据库吧


就叫...


AV-Idol


用 root 的身份进入你的 MySQL

    sudo mysql -u root -p


    输入 MySQL 的用户名密码之后


    就可以开始操作 MySQL 啦


    我们来创建一个数据库


    如果 avIdol 这个数据库不存在于我们的 MySQL 里面


    那就创建一个出来

      mysql> create database if not exists avIdol;
      Query OK, 1 row affected (0.01 sec)


      这样


      我们就创建出一个数据库了





      接下来


      我们就使用 python 来操作这个数据库吧


      我们需要使用到 pymysql 这个库


      专门用来操作 MySQL 的


      可以用 pip 安装一下


         pip install pymysql


        接下来我们就连接到我们刚刚创建的数据库


        然后在这个数据库里面创建一张 beautyGirls 


        专门用来存放漂亮美眉的信息


          import pymysql


          # 使用 connect 方法,传入数据库地址,账号密码,数据库名就可以得到你的数据库对象
          db = pymysql.connect("你的数据库地址", "数据库账号",
          "数据库密码", "avIdol")


          # 接着我们获取 cursor 来操作我们的 avIdol 这个数据库
          cursor = db.cursor()


          # 比如我们来创建一张数据表
          sql = """create table beautyGirls (
          name char(20) not null,
          age int)"""
          cursor.execute(sql)


          # 最后我们关闭这个数据库的连接
          db.close()


          运行一下


          没报什么错就说明我们成功创建数据表了


          我们回到数据库看下是否创建成功



          通过 show tables


          可以看到我们数据库成功创建了 beautyGirls 这张婊,哦不,表


          通过 show full columns from beautyGirls;


          可以看到我们在这张表中创建了 name 和 age 这两个字段



          有了数据库和数据表了


          那么接下来我们就往数据库插入数据看看


            import pymysql


            # 使用 connect 方法,传入数据库地址,账号密码,数据库名就可以得到你的数据库对象
            db = pymysql.connect("localhost", "root", "root", "avIdol")


            # 接着我们获取 cursor 来操作我们的 avIdol 这个数据库
            cursor = db.cursor()


            # 插入一条记录
            sql = "insert into beautyGirls(name, age) values ('Mrs.cang', 18)"


            try:
            cursor.execute(sql)
            db.commit()
            except:
            # 回滚
            db.rollback()


            # 最后我们关闭这个数据库的连接
            db.close()



            再来数据库查询一下这张表



            可以看到


            苍老师的数据就被我们插进来了



            当你使用 pymysql 对数据进行更新的时候


            记得调用 


            db.commit()


            这样才会执行到哦


            知道如何创建数据表、插入数据


            那么对于更新数据以及删除数据


            也是同样的道理


            只是 sql 语句不同而已


            比如删除 18 岁的苍老师


              sql = "delete from beautyGirls where age = '%d'" % (18)
              try:
                 cursor.execute(sql)
              db.commit()
              except:
              db.rollback()


              可能你在操作数据库的时候


              做一些数据的更新或者添加


              有些数据在添加过程可能出现异常


              为了让我们的数据能够完全的添加


              可以使用 


              db.rollback()


              回滚操作


              这样才能让我们的事务具有一致性



              当然


              我们也可以将 csv 中的内容插入到 MySQL 中


              就拿上次我们生成的 xsb.csv 文件来说



              我们把这里面的内容插到 xsb 数据库吧


              还是一样,我们来创建一个叫做 xsb 的数据库


              并且把字符集设置为 UFT-8 ,防止中文乱码


                mysql> CREATE DATABASE xsb CHARACTER SET utf8 COLLATE utf8_general_ci;


                接着创张帅b表


                  mysql> CREATE TABLE xsb (name char(20), age char(20), length char(20));
                  Query OK, 0 rows affected (0.34 sec)


                  回到代码来


                  这次我们安装一下 mysql 的 python 客户端


                    pip install mysqlclient 


                    使用 sqlalchemy 来连接我们的数据库


                    然后就可以使用代码将 csv 文件的内容插到 xsb 这张表了


                      import pandas as pd
                      from sqlalchemy import create_engine


                      df = pd.read_csv('xsb.csv')


                      # 当engine连接的时候我们就插入数据
                      engine = create_engine('mysql://root@localhost/xsb?charset=utf8')
                      with engine.connect() as conn, conn.begin():
                      df.to_sql('xsb', conn, if_exists='replace')


                      运行一下


                      然后打开我们刚刚创建的 xsb 数据库查询一下



                      可以看到


                      我们就将 csv 中的内容插入到数据库啦



                      ok


                      以上就是使用 python 操作数据库的具体操作


                      以后小帅b在爬虫项目例子中还会提及 MySQL 


                      那么


                      我们下回见


                      peace


                      文章转载自小帅b和他的朋友们,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                      评论