基于Python+爬虫的微博热搜数据可视化分析系统

💗博主介绍:✌全网粉丝10W+,CSDN全栈领域优质创作者,博客之星、掘金/华为云/阿里云等平台优质作者。

👇🏻 精彩专栏 推荐订阅👇🏻

计算机毕设精品项目案例(持续更新)

🌟文末获取源码+数据库+文档🌟

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以和学长沟通,希望帮助更多的人

一、前言

微博热搜数据分析与可视化系统的目的是让使用者可以更方便的将人、设备和场景更立体的连接在一起。能让用户以更科幻的方式使用产品,体验高科技时代带给人们的方便,同时也能让用户体会到与以往常规产品不同的体验风格。

微博热搜数据分析与可视化系统在流畅性,续航能力,等方方面面都有着很大的优势。这就意味着微博热搜数据分析与可视化系统的设计可以比其他系统更为出色的能力,可以更高效的完成最新的微博热搜等功能。

本文拟采用PyCharm开发工具,Python语言、数据分析、Django框架进行开发,使用Scrapy-spiders进行数据爬虫,后台使用MySQL数据库进行信息管理,对于各个模块设计制作有一定的安全性。把获取到的数据进行清洗、整合,储存数据到MySQL,然后进行数据可视化的呈现,简单对呈现的图进行数据分析。通过微博热搜数据分析与可视化系统来提升本课题的各项功能的工作效率,提供了一个多样功能,具有良好实用性的微博热搜数据分析与可视化系统。

二、功能设计

(1)数据获取板块

数据获取板块功能主要是依据分析目的及要达到的目标,确定获取的数据种类,并使用直接获取数据文件方式或爬虫方式获取原始数据。

(2)数据预处理板块

数据预处理板块功能是对获取到的数据进行预处理操作:将重复的字段筛选,将过短并且没有实际意义的数据进行过滤,选择重要字段,标准化处理,异常值处理等预处理操作。

(3)数据存储板块

数据存储板块主要功能是把经过预处理的数据持久化存储,以便于后续分析。

(4)数据分析板块

数据分析板块主要功能是根据分析目标,找出数据中字段之间的内在关系,与规律。

(5)数据可视化板块

数据可视化板块主要功能是使用适当的图标展现方式,把数据的内在关系、规律展现出来。

系统功能结构图如下所示:

系统B/S架构原理图:

三、数据设计

概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是对数据库实体的E-R图:

四、部分效果展示

管理员模块

管理员通过登录页面填写用户名和密码,选择角色完成后进行登录,如图5.1所示。

管理员登录进入微博热搜数据分析与可视化系统的实现可以查看系统首页、个人中心、微博热搜管理、 用户管理等信息。

管理员点击用户管理;在用户管理页面对账号、姓名、性别、手机、邮箱、身份证、头像等信息,进行查询,新增或删除用户信息等操作;如图所示。

管理员点击微博热搜管理;在微博热搜管理页面对博主、发布地、点赞量、评论量、分享量等信息,进行查询,新增、爬起数据或删除微博热搜等操作;如图所示。

用户模块

注册界面,第一次使用本系统的使用者,首先是要进行注册,点击“注册”,然后就会进入到注册的页面里面,将用户信息录入注册表,确认信息正确后,系统才会进入登录界面,用户登录成功后可使用本系统所提供的所有功能,如图所示。

用户登录进入系统后,可以对系统首页、个人中心、微博热搜管理等功能进行相应操作,如图所示。

数据可视化分析大屏模块

微博热搜数据分析与可视化系统基本情况展示,如图所示。

对于微博热搜数据分析与可视化系统获取分析数据之后,开始对这些数据进行可视化分析,首先是博主点赞统计的基本分析情况,如图所示。

以下介绍的是博主评论统计分析展示,如图所示:

博主分享统计用饼状图形式展示,让用户对博主分享统计信息有个直观了解,如图所示:

下面展示是博主统计,对于博主统计大数据,数据获取之后,开始对这些数据进行可视化分析,首先是博主统计的基本情况,其中根据爬取的数据得到以的饼状图的形式来展示,如图所示。

下面展示是发布地统计,对于发布地统计大数据获取之后,开始对这些数据进行可视化分析,首先通过页面查看发布地统计详情以饼状图分析进行来展示,如图所示。

下图是微博热搜,通过python爬取清洗后的数据形式展示如图所示:

部分功能代码

# 配置文件
import os
import configparser
import random
BOT_NAME = 'Spider'
SPIDER_MODULES = ['Spider.spiders']
NEWSPIDER_MODULE = 'Spider.spiders'
# 禁用 robots.txt 规则
ROBOTSTXT_OBEY = False
# 为同一网站的请求配置延迟 (默认: 0)
DOWNLOAD_DELAY = 3
USER_AGENT_LIST = [
   'MSIE (MSIE 6.0; X11; Linux; i686) Opera 7.23',
   'Opera/9.20 (Macintosh; Intel Mac OS X; U; en)',
   'Opera/9.0 (Macintosh; PPC Mac OS X; U; en)',
   'iTunes/9.0.3 (Macintosh; U; Intel Mac OS X 10_6_2; en-ca)',
   'Mozilla/4.76 [en_jp] (X11; U; SunOS 5.8 sun4u)',
   'iTunes/4.2 (Macintosh; U; PPC Mac OS X 10.2)',
   'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:5.0) Gecko/20100101 Firefox/5.0',
   'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:9.0) Gecko/20100101 Firefox/9.0',
   'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20120813 Firefox/16.0',
   'Mozilla/4.77 [en] (X11; I; IRIX;64 6.5 IP30)',
   'Mozilla/4.8 [en] (X11; U; SunOS; 5.7 sun4u)'
]
# 重写默认请求头
DEFAULT_REQUEST_HEADERS = { # 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36'
   'user-agent': random.choice(USER_AGENT_LIST)
}
# 配置 item_pipelines
ITEM_PIPELINES = { 'Spider.pipelines.SpiderPipeline': 300,
}
LOG_ENABLED = True
COOKIES_ENABLED = False
config = configparser.ConfigParser()
config.read(os.path.join(os.path.dirname(os.path.abspath(__file__)), 'config/config.ini'), encoding='utf-8')
# db 配置
TYPE = config.get('db', 'type')
HOST = config.get('db', 'host')
PORT = config.get('db', 'port')
DATABASE = config.get('db', 'database')
USER = config.get('db', 'user')
PASSWORD = config.get('db', 'password')

最后

最新计算机毕业设计选题篇-选题推荐(值得收藏)

计算机毕业设计精品项目案例-200套(值得订阅)