【项目实训】后台数据库搭建

 前期我们已经爬取了各大公司岗位的相关信息,并且爬取了牛客网的面试经验贴。之后我们将面试经验喂给大模型进行了面试经验总结,得到了良好的面试经验,以供用户参考。

为了提高我们系统的效率,降低系统反应时长,我们计划将大模型总结好的经验存储到数据库中,并把一些固定的比如公司岗位信息存储到数据库中,这样,就变成了查询数据库操作,会大大缩短反应时长。

并且经会议讨论,我们认真观察了爬取数据的结构内容,发现大部分经验贴中都涉及到了八股信息。于是我们打算爬取八股信息作为模拟面试模块的参考,以提高大模型性能。

接下来我进行了如下操作:

创建数据库表

公司岗位信息表

  • 设置如下字段:

  • 使用python的mysql板块连接mysql,并将csv中的数据存储到数据库中

代码:

def mysql_connect():
    '''建立连接'''
    # 打开数据库连接
    db = pymysql.connect(host="localhost",port=3306,
                         user="root",password="123456",db="xmsx",charset="utf8")
    #使用cursor创建一个游标对象
    cursor = db.cursor()
    # 重置自增值序列到0
    #cursor.execute("ALTER TABLE house_info AUTO_INCREMENT = 0")
    return db,cursor

def mysql_close(db,cursor):
    '''关闭连接'''
    db.commit()
    cursor.close()
    db.close()

def query(sql,*args):
    '''执行sql'''
    db,cursor = mysql_connect()
    try:
        cursor.execute(sql,args)
        result = cursor.fetchall()
        return result
    except Exception as e:
        db.rollback()
        print(e)
    finally:
        mysql_close(db,cursor)
def load_data():
    data = pd.read_csv(r'path.csv')
    #查看行和列
    print(data.columns)
    print(data.dtypes)
    db, cursor = mysql_connect()  # 建立连接
    for index,row in data.iterrows():
        # print(index)
        # print(row)
        company = row['company']
        job_area = row['job_area']
        job_name = row['job_name']
        job_require = row['job_require']
        job_duty_desciption = row['job_description']
        sql = ('insert into companyandjob(company,'
               'job_area,job_name,job_require,job_duty_desciption)'
               ' values(%s,%s,%s,%s,%s)')

        query(db,cursor,sql,company,job_area,job_name,job_require,job_duty_desciption)
    mysql_close(db, cursor)  # 关闭连接

导入成功如图:

面试经验表

首先从牛客网以及其他网站爬取一些优质面经,然后我们保存到数据库中,以便进行数据可视化页面的前端展示。

爬虫得到的csv文件:

  • 新建面试经验表,字段如下

在建表中,发现设置为varchar存储字符不够,于是设计类型为longtext

  • 导入数据,得到结果

八股表

从各个网站中爬取了各类别的八股信息,爬取过程和爬取公司官网类似,主要的工作量在于需要分析不同网站的结构,找到要提取数据的部分,精准定位进行提取。因此这里颇耗费了点时间。

因为网站中是按照面试题目类别进行展示的,所以我们也按照类别进行爬取

然后导入到了数据库中,爬虫得到的csv文件如下,(经过了清洗,只爬取了面试题目部分)

导入到数据库中(和之前相同的逻辑)

至此,数据库搭建完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值