• Spider -- 数据持久化 之 MySQL


    • 1、在数据库中建库建表

    # 连接到mysql数据库
    mysql -h127.0.0.1 -uroot -p123456
    # 建库建表
    create database maoyandb charset utf8;
    use maoyandb;
    create table filmtab(
    name varchar(100),
    star varchar(300),
    time varchar(50)
    )charset=utf8;
    • 2、回顾pymysql基本使用

    import pymysql
    ​
    # 创建2个对象
    db = pymysql.connect('localhost','root','123456','maoyandb',charset='utf8')
    cursor = db.cursor()
    ​
    # 执行SQL命令并提交到数据库执行
    # execute()方法第二个参数为列表传参补位
    ins = 'insert into filmtab values(%s,%s,%s)'
    cursor.execute(ins,['霸王别姬','张国荣','1993'])
    db.commit()
    ​
    # 关闭
    cursor.close()
    db.close()
    • 来试试高效的executemany()方法

    import pymysql
    ​
    # 创建2个对象
    db = pymysql.connect('localhost','root','123456','maoyandb',charset='utf8')
    cursor = db.cursor()
    ​
    # 抓取的数据
    film_list = [('月光宝盒','周星驰','1994'),('大圣娶亲','周星驰','1994')]
    ​
    # 执行SQL命令并提交到数据库执行
    # execute()方法第二个参数为列表传参补位
    cursor.executemany('insert into filmtab values(%s,%s,%s)',film_list)
    db.commit()
    ​
    # 关闭
    cursor.close()
    db.close()
    • 3、将电影信息存入MySQL数据库(尽量使用executemany方法)

    # mysql - executemany([(),(),()])
    def write_html(self, film_list):
      L = []
      ins = 'insert into filmtab values(%s,%s,%s)'
      for film in film_list:
        t = (
          film[0].strip(),
          film[1].strip(),
          film[2].strip()[5:15]
        )
        L.append(t)
    ​
        self.cursor.executemany(ins, L)
        # 千万别忘了提交到数据库执行
        self.db.commit()
    • 4、做个SQL查询

    1、查询20年以前的电影的名字和上映时间
      select name,time from filmtab where time<(now()-interval 20 year);
    2、查询1990-2000年的电影名字和上映时间
      select name,time from filmtab where time>='1990-01-01' and time<='2000-12-31';

     

  • 相关阅读:
    [转]敏捷软件开发 需求分析
    Windows服务控制命令SC
    [转]敏捷测试工程师的十条法则
    大道至简:如何准确把握趋势 一
    Sqlserver xml 类型操作
    微软Teched2010大会一日游记
    [转]任务、用例、用户故事和场景
    ASUS TF600T上手体验
    Windows 8的各种小发现——不断更新中
    Surface Pro电磁笔故障
  • 原文地址:https://www.cnblogs.com/gengyufei/p/12643025.html
Copyright © 2020-2023  润新知