本次将爬取的网易云课程信息存入数据库,首先需要对课程数据进行分析,然后根据课程数据信息创建对应的数据表中的字段。最后,将爬取的课程数据写入到MySQL数据库。
使用PyMySQL模块操作数据库,流程如下:
连接数据库
使用PyMySQL的connect()方法连接数据库,代码如下:
# 连接数据库,示例为本机mysql
01 conn = pymysql.connect(host='localhost',
02 port=3306,
03 user='root',
04 passwd='root',
05 db='flask',
06 charset='utf8')
07 cur = conn.cursor()
查询数据
使用PyMySQL的execute()方法可以执行SQL语句,例如根据课程ID查询数据,代码如下:
01 # 根据course_id查找course表中记录
02 sql = f'select course_id from course where course_id = {course_id}'
03 # 执行SQL语句
04 cur.execute(sql)
05 # 查找一条记录
06 course = cur.fetchone()
批量写入数据库
每次写入一条记录效率较低,使用批量写入数据库可以提高运行效率。PyMySQL的executemany()方法可以批量写入数据库,代码如下:
01 sql_course = """insert into course
02 values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
03 """
04 # exetemany方法插入多条记录
05 cur.executemany(sql_course, course_data