基于Python的小红书平台用户数据分析与可视化-计算机毕业设计

收藏关注不迷路

文章目录

  • 前言
  • 一、项目介绍
  • 二、开发环境
  • 三、功能介绍
  • 四、核心代码
  • 五、效果图
  • 六、文章目录


前言

据CNNIC在京发布第48次《中国互联网络发展状况统计报告》显示,截至2021年6月,我国网民规模达10.11亿,30-39岁网民占比最高,达到20.3%;其次依次是40-49岁、20-29岁占比较高。据新浪小红书平台数据中心发布的《2020小红书平台用户发展报告》中,小红书平台2020年9月月活跃用户为5.11亿,9月日活跃用户为2.24亿。其中代际用户互动时段高峰区为上班路上、午休、晚饭前、睡前,午时(12:00)和亥时(22:00)是黄金冲浪时段,90、00后等社会年轻主体互动量最高。小红书平台用户加速年轻化,90、00后占比近80%,媒体及政务官微90后粉丝过半。并且现今社会中,90、00后大多数都接受过高等教育。由此可见小红书平台对社会的影响力非常高,小红书平台平台拥有大量的用户,每天产生海量的信息,挖掘潜在的价值与知识,正确利用这个移动媒体对社会、政企、商务策划与营销、舆论监督、个人都有很大的益处。数据挖掘方法能够找到海量数据中有潜在价值的知识与模式,使用数据分析的方法、借助数据挖掘工具去探索小红书平台用户的习惯、兴趣、偏好。

一、项目介绍

首先研究目前市面上开源的主流爬虫框架Scrapy和Nutch的实现,熟悉掌握爬虫的框架。然后使用Python语言利用URL管理器、网页下载器、网页解析器、输出管理器这四个模块去搭建一个爬虫框架,将爬虫流程统一化,将通用的功能进行抽象,减少重复工作。要求实现的爬虫框架可以进行分布式爬取,解决爬虫的统一调度和统一去重,以及存储问题和速度问题。并提供多线程的下载,当CPU核数多的时候多线程下载可以更快的完成任务。最后使所要爬取的网站易于定制,因为很多站点的下载频率、浏览器要求是不同的,所以这里所实现的爬虫框架要提供相应扩展的配置。爬虫框架的实现步骤:
(1)先通过URL管理器进行管理,将待爬取的URL和已经爬取的URL分别记录下来。
(2)再根据URL将网页进行下载,主要是进行相应的伪装处理模拟浏览器访问、下载网页。
(3)随后通过网页解释器解析、获取你想要的、感兴趣的内容。
(4)最后使用输出管理器从经过筛选的下载中获取到对应的值,然后转化成你想要的文件形式来对你所需要的内容进行输出。
再将这个框架封装调用,对一个具体的网站进行测试。现成的开源第三方框架是为了尽可能满足大部分的需求,不可能做到面面俱到,以及第三方框架的调试相对复杂。为了提高效率可以专门封装一个框架,来快速方便得解决需求。

二、开发环境

开发语言:Python
python框架:django
软件版本:python3.7/python3.8
数据库:mysql 5.7或更高版本
数据库工具:Navicat11
开发软件:PyCharm/vs code
前端框架:vue.js

————————————————

三、功能介绍

本课题研究内容为基于网络爬虫分析的技术。运用python语言,利用协同过滤算法并可进行用户交互以实现算法的可操作性。采用,pandas,numpy数据分析,flask后端框架,前端采用bootstrap,echarts和JavaScript进行渲染和交互,sqlite关系数据库,轻量级mysql。其中登录注册,前端展示模块采用boostrap框架,数据统计分析模块采用mysql数据库,系统的功能模块的数据分析采用pandas,numpy技术。
挖掘活跃用户行为特征,分析用户的习惯、兴趣、偏好,然后对用户进行分类,通过活跃用户的特征属性为非活跃用户选择最相似的用户群体,然后进行分析。
使用基于划分的K中心算法和基于密度的DBSCAN 算法进行聚类分类,K中心算法通过分析各个类簇中心的相关性是否为不相关得到最终的分类结果,用基于密度的DBSCAN 算法的聚类结果进行对比,得到一个有已知标签的数据集(假设为数据集名为S)
对非活跃用户,用训练好的模型进行分类,然后提出一些建议。
数据集:分为活跃用户数据集和非活跃用户数据集
数据集属性类型

四、核心代码

部分代码:


def users_login(request):
    if request.method in ["POST", "GET"]:
        msg = {'code': normal_code, "msg": mes.normal_code}
        req_dict = request.session.get("req_dict")
        if req_dict.get('role')!=None:
            del req_dict['role']
        datas = users.getbyparams(users, users, req_dict)
        if not datas:
            msg['code'] = password_error_code
            msg['msg'] = mes.password_error_code
            return JsonResponse(msg)

        req_dict['id'] = datas[0].get('id')
        return Auth.authenticate(Auth, users, req_dict)


def users_register(request):
    if request.method in ["POST", "GET"]:
        msg = {'code': normal_code, "msg": mes.normal_code}
        req_dict = request.session.get("req_dict")

        error = users.createbyreq(users, users, req_dict)
        if error != None:
            msg['code'] = crud_error_code
            msg['msg'] = error
        return JsonResponse(msg)


def users_session(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code,"msg":mes.normal_code, "data": {}}

        req_dict = {"id": request.session.get('params').get("id")}
        msg['data'] = users.getbyparams(users, users, req_dict)[0]

        return JsonResponse(msg)


def users_logout(request):
    if request.method in ["POST", "GET"]:
        msg = {
            "msg": "退出成功",
            "code": 0
        }

        return JsonResponse(msg)


def users_page(request):
    '''
    '''
    if request.method in ["POST", "GET"]:
        msg = {"code": normal_code, "msg": mes.normal_code,
               "data": {"currPage": 1, "totalPage": 1, "total": 1, "pageSize": 10, "list": []}}
        req_dict = request.session.get("req_dict")
        tablename = request.session.get("tablename")
        try:
            __hasMessage__ = users.__hasMessage__
        except:
            __hasMessage__ = None
        if __hasMessage__ and __hasMessage__ != "否":

            if tablename != "users":
                req_dict["userid"] = request.session.get("params").get("id")
        if tablename == "users":
            msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
            msg['data']['pageSize'] = users.page(users, users, req_dict)
        else:
            msg['data']['list'], msg['data']['currPage'], msg['data']['totalPage'], msg['data']['total'], \
            msg['data']['pageSize'] = [],1,0,0,10

        return JsonResponse(msg)


五、效果图

基于Python的小红书平台用户数据分析与可视化-计算机毕业设计_第1张图片
基于Python的小红书平台用户数据分析与可视化-计算机毕业设计_第2张图片
基于Python的小红书平台用户数据分析与可视化-计算机毕业设计_第3张图片
基于Python的小红书平台用户数据分析与可视化-计算机毕业设计_第4张图片

六、文章目录

目 录
摘 要 I
ABSTRACT II
目 录 II
第1章 绪论 1
1.1背景及意义 1
1.2 国内外研究概况 1
1.3 研究的内容 1
第2章 相关技术 3
2.1 Python简介 4
2.2 Django 框架介绍 6
2.3 B/S结构 4
2.4 MySQL数据库 4
第3章 系统分析 5
3.1 需求分析 5
3.2 系统可行性分析 5
3.2.1技术可行性:技术背景 5
3.2.2经济可行性 6
3.2.3操作可行性: 6
3.3 项目设计目标与原则 6
3.4系统流程分析 7
3.4.1操作流程 7
3.4.2添加信息流程 8
3.4.3删除信息流程 9
第4章 系统设计 11
4.1 系统体系结构 11
4.2开发流程设计系统 12
4.3 数据库设计原则 13
4.4 数据表 15
第5章 系统详细设计 19
5.1管理员功能模块 20
5.2用户功能模块 23
5.3前台功能模块 19
第6章 系统测试 25
6.1系统测试的目的 25
6.2系统测试方法 25
6.3功能测试 26
结 论 28
致 谢 29

你可能感兴趣的:(python,计算机毕业设计,python,数据分析,课程设计)