python新闻推荐系统(Django+Vue + 混合推荐算法・含爬虫 + 可视化)附源码+文档(建议收藏)✅
博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌
> 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与我联系了。🍅🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅
1、毕业设计:2025年计算机专业毕业设计选题汇总(建议收藏)✅
1、项目介绍
涉及框架:
Django框架、vue框架、MySQL数据库、jieba、selenium爬虫、BeautifulSoup、vue.js
本项目是面向新闻个性化服务与计算机毕业设计需求开发的新闻推荐系统,以 Python 为开发语言,采用 Django+Vue 前后端分离架构,整合 Selenium+BeautifulSoup 新浪新闻爬虫、“权重衰减 + 标签推荐 + 热点推荐” 混合算法、MySQL 数据库与 Echarts 可视化工具,构建 “数据采集 - 智能推荐 - 管理交互” 一体化平台,可解决传统新闻获取 “效率低、个性化不足、重复推荐” 痛点,附完整源码与文档,符合毕业设计技术深度要求。
技术上,Selenium+BeautifulSoup 定向爬取新浪新闻,获取标题、文本、图片及视频链接,存储至 MySQL;混合推荐算法实现精准推送 —— 权重衰减避免兴趣标签固化导致的重复推荐,标签推荐通过用户与新闻标签匹配提升个性化,热点推荐结合阅读量、评论量、发布时间计算热度;前端 Vue 搭建响应式界面,Echarts 实现数据可视化大屏,Django 提供后端支撑与权限控制(用户 / 管理员)。
功能覆盖全场景需求:用户端支持新闻分类浏览、个性化推荐、评论互动与注册登录;管理员端可控制爬虫采集、配置推荐参数、管理新闻 / 用户数据与查看日志;数据可视化大屏直观展示新闻热度、分类占比等核心数据。系统操作流畅,适配新闻阅读与管理需求,兼具技术创新性与实用价值,是优质的毕业设计方案。
毕业设计:新闻推荐系统 混合推荐算法 爬虫 可视化 推荐算法 vue框架 Django框架 selenium爬虫技术 新浪新闻(附源码+文档)✅
网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接
推荐算法:权重衰减+标签推荐+热点推荐
- 权重衰减进行用户兴趣标签权重的衰减,避免内容推荐的过度重复
- 标签推荐进行用户标签与新闻标签的匹配,按照匹配比例进行新闻的推荐
- 热点推荐进行新闻热点的计算的依据是新闻阅读量、新闻评论量、新闻发布时间
2、项目界面
(1)数据可视化大屏展示
(2)系统首页

(3)数据爬虫设置

(4)新闻数据管理

(6)新闻数据详情页面
(7)新闻数据评论功能
(8)不同类型的新闻数据浏览
(9)注册登录界面

3、项目说明
本项目是面向新闻个性化服务与计算机毕业设计需求开发的新闻推荐系统,以 Python 为开发语言,采用 Django+Vue 前后端分离架构,整合 Selenium+BeautifulSoup 新浪新闻爬虫、“权重衰减 + 标签推荐 + 热点推荐” 混合算法、MySQL 数据库与 Echarts 可视化工具,构建 “数据采集 - 智能推荐 - 管理交互” 一体化平台,可解决传统新闻获取 “效率低、个性化不足、重复推荐” 痛点,附完整源码与文档,符合毕业设计技术深度要求。
技术上,Selenium+BeautifulSoup 定向爬取新浪新闻,获取标题、文本、图片及视频链接,存储至 MySQL;混合推荐算法实现精准推送 —— 权重衰减避免兴趣标签固化导致的重复推荐,标签推荐通过用户与新闻标签匹配提升个性化,热点推荐结合阅读量、评论量、发布时间计算热度;前端 Vue 搭建响应式界面,Echarts 实现数据可视化大屏,Django 提供后端支撑与权限控制(用户 / 管理员)。
功能覆盖全场景需求:用户端支持新闻分类浏览、个性化推荐、评论互动与注册登录;管理员端可控制爬虫采集、配置推荐参数、管理新闻 / 用户数据与查看日志;数据可视化大屏直观展示新闻热度、分类占比等核心数据。系统操作流畅,适配新闻阅读与管理需求,兼具技术创新性与实用价值,是优质的毕业设计方案。
随着信息技术和互联网的发展,新闻传播从传统纸媒向数字化、智能化转变。传统新闻获取方式依赖固定渠道和人工筛选,信息传播效率低,个性化需求难以满足。新闻分类和推荐缺乏智能化手段,用户体验较差,新闻信息重复推荐和区域适配不足的问题显著。
系统后端采用Python语言和Django框架,前端采用Vue框架,数据库使用MySQL。通过Selenium爬虫技术实现新浪新闻爬取,获取标题、文本、图片、视频链接。功能包括首页新闻分类浏览、用户浏览记录和个性化推荐、新闻热度展示、用户标签管理与评论互动。管理员端支持新闻采集控制、推荐配置管理、数据分析日志查看、用户和新闻数据管理、评论操作等。Echarts用于数据可视化,界面采用HTML实现。
关键词:新闻推荐系统,Django,Vue,MySQL
随着信息技术和互联网的发展,新闻传播从传统纸媒向数字化、智能化转变。传统新闻获取方式依赖固定渠道和人工筛选,信息传播效率低,个性化需求难以满足。新闻分类和推荐缺乏智能化手段,用户体验较差,新闻信息重复推荐和区域适配不足的问题显著。
系统后端采用Python语言和Django框架,前端采用Vue框架,数据库使用MySQL。通过Selenium爬虫技术实现新浪新闻爬取,获取标题、文本、图片、视频链接。功能包括首页新闻分类浏览、用户浏览记录和个性化推荐、新闻热度展示、用户标签管理与评论互动。管理员端支持新闻采集控制、推荐配置管理、数据分析日志查看、用户和新闻数据管理、评论操作等。Echarts用于数据可视化,界面采用HTML实现。
关键词:新闻推荐系统,Django,Vue,MySQL
网络爬
虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接
推荐算法:权重衰减+标签推荐+热点推荐
- 权重衰减进行用户兴趣标签权重的衰减,避免内容推荐的过度重复
- 标签推荐进行用户标签与新闻标签的匹配,按照匹配比例进行新闻的推荐
- 热点推荐进行新闻热点的计算的依据是新闻阅读量、新闻评论量、新闻发布时间
涉及框架:
Django框架、vue框架、MySQL数据库、jieba、selenium爬虫、BeautifulSoup、vue.js
软件功能结构/页面展示

4、核心代码
# -*- coding: utf-8 -*-
'''
Author:Z
Desc:通过热值对用户进行推送新闻
'''
import datetime
import logging
from logging.handlers import TimedRotatingFileHandler
import pymysql
from Spider.settings import DB_HOST, DB_USER, DB_PASSWD, DB_NAME, DB_PORT
logger = logging.getLogger(__name__)
logger.setLevel(level=logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(levelname)-7s - %(message)s')
# 2. 初始化handler,并配置formater
log_file_handler = TimedRotatingFileHandler(filename="Recommend/recommend/hlg.log",
when="S", interval=10,
backupCount=20)
log_file_handler.setFormatter(formatter)
# 3. 向logger对象中添加handler
logger.addHandler(log_file_handler)
class NewsRecommendByHotValue():
def __init__(self):
self.db = self.connect()
self.cursor = self.db.cursor()
self.userlist = self.loadDBData()
# self.news_tags = self.loadFileData()
self.result = self.getRecResult()
def connect(self):
'''
@Description:数据库连接
@:param host --> 数据库链接
@:param user --> 用户名
@:param password --> 密码
@:param database --> 数据库名
@:param port --> 端口号
@:param charset --> 编码
'''
db = pymysql.Connect(host=DB_HOST, user=DB_USER, password=DB_PASSWD, database=DB_NAME, port=DB_PORT,
charset='utf8')
return db
def loadDBData(self):
'''
@Description:加载数据库用户数据
@:param None
'''
sql_s = 'select userid from news_api_user'
try:
self.cursor.execute(sql_s)
useridlist = self.cursor.fetchall()
except:
logging.error("Database Error")
self.db.rollback()
return useridlist
def getRecResult(self):
'''
@Description:加载数据库新闻热度数据并进行热度推荐
@:param None
'''
sql_s = 'select news_id,news_hot from news_api_newshot order by news_hot DESC limit 0,20;'
self.cursor.execute(sql_s)
newsidlist = self.cursor.fetchall()
print(newsidlist)
time = datetime.datetime.now().strftime("%Y-%m-%d")
for user in self.userlist:
print(user[0])
for newsid in newsidlist:
sql_w = 'insert into news_api_recommend(userid, newsid, hadread, cor, species, time) values (%d, %d, 0, %.2f, 2, \'%s\')' % \
(int(user[0]), int(newsid[0]), 1, time)
logger.info("sql_w:{}".format(sql_w))
try:
self.cursor.execute(sql_w)
self.db.commit()
except:
logger.error("rollback:{}".format(newsid[0]))
self.db.rollback()
return True
def beginrecommendbyhotvalue():
NewsRecommendByHotValue()
🍅✌感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目代码以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业!🍅✌
5、源码获取方式
🍅由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。🍅
点赞、收藏、关注,不迷路,下方查看👇🏻获取联系方式👇🏻
更多推荐


所有评论(0)