基于Python新闻推荐系统 大数据毕业设计 爬虫+可视化+推荐算法 vue框架+Django框架(附源码)✅

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏)

毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总

🍅感兴趣的可以先收藏起来,点赞、关注不迷路,大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助同学们顺利毕业 。🍅

1、项目介绍

网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接
推荐算法:权重衰减+标签推荐+热点推荐

  • 权重衰减进行用户兴趣标签权重的衰减,避免内容推荐的过度重复
  • 标签推荐进行用户标签与新闻标签的匹配,按照匹配比例进行新闻的推荐
  • 热点推荐进行新闻热点的计算的依据是新闻阅读量、新闻评论量、新闻发布时间

涉及框架:
Django框架、vue框架、MySQL数据库、jieba、selenium爬虫、BeautifulSoup、vue.js

在这里插入图片描述

2、项目界面

(1)数据可视化大屏展示

在这里插入图片描述

(2)系统首页

在这里插入图片描述

(3)数据爬虫设置

在这里插入图片描述

(4)新闻数据管理

在这里插入图片描述

(6)新闻数据详情页面

在这里插入图片描述

(7)不同类型的新闻数据浏览

在这里插入图片描述

3、项目说明

网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接
推荐算法:权重衰减+标签推荐+热点推荐

  • 权重衰减进行用户兴趣标签权重的衰减,避免内容推荐的过度重复
  • 标签推荐进行用户标签与新闻标签的匹配,按照匹配比例进行新闻的推荐
  • 热点推荐进行新闻热点的计算的依据是新闻阅读量、新闻评论量、新闻发布时间

涉及框架:
Django框架、vue框架、MySQL数据库、jieba、selenium爬虫、BeautifulSoup、vue.js
软件功能结构/页面展示

4、核心代码


# -*- coding: utf-8 -*-
'''Author:ZDesc:通过热值对用户进行推送新闻
'''
import datetime
import logging
from logging.handlers import TimedRotatingFileHandlerimport pymysqlfrom Spider.settings import DB_HOST, DB_USER, DB_PASSWD, DB_NAME, DB_PORTlogger = 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 dbdef 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 useridlistdef 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 Truedef beginrecommendbyhotvalue():NewsRecommendByHotValue()

5、源码获取方式

🍅由于篇幅限制,获取完整文章或源码、代做项目的,查看我的【用户名】、【专栏名称】、【顶部选题链接】就可以找到我啦🍅

感兴趣的可以先收藏起来,点赞、关注不迷路,下方查看👇🏻获取联系方式👇🏻

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/327953.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Halcon计算一个区域的最大内接圆 inner_circle

Halcon计算一个区域的最大内接圆 该算子用于计算一个区域的最大内接圆,其原型如下: inner_circle(Regions : :: Row, Column, Radius)参数1:Regions 表示输入的区域。 参数2和3:Row、Column为输出参数,表示最大内接圆…

大数据Doris(五十一):Colocation Join介绍

文章目录 Colocation Join介绍 一、原理 二、使用方式 1、建表 2、删表

玩转Mysql 四(MySQL逻辑架构与数据引擎)

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。 一、MySQL逻辑架构 1、从Oracle收购MySQL后,MySQL逻辑架构受Oracle影响,MySQL8版本中逻辑架构受Oracle的影响逐步完善查询缓存,O…

微型导轨在设备中起什么作用

微型导轨精度高,摩擦系数小,自重轻,结构紧凑,可以用于电子制造设备、半导体制造设备、医疗设备、光学设备和机器人等各种工业机械设备中,那么微型导轨在设备中起什么作用呢? 1、导向与定位:为机…

【开源项目】WPF 扩展组件 -- Com.Gitusme.Net.Extensiones.Wpf

一、项目简介 Com.Gitusme.Net.Extensiones.Wpf 是一款 Wpf 扩展组件。基于.Net Core 3.1 开发,当前最新 1.0.1 版本。包含 核心扩展库(Com.Gitusme.Net.Extensiones.Core)、视频渲染(Com.Gitusme.Media.Video)、串口…

2023年12月 C/C++(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:统计指定范围里的数 给定一个数的序列S,以及一个区间[L, R], 求序列中介于该区间的数的个数,即序列中大于等于L且小于等于R的数的个数。 时间限制:1000 内存限制:65536 输入 第一行1个整数n,分别表示序列的长度。(0 < n ≤…

小游戏实战丨基于Tkinter的五子棋小游戏

文章目录 写在前面Tkinter五子棋系列文章写在后面 写在前面 本期内容&#xff1a;基于tkinter的五子棋小游戏 下载地址&#xff1a;https://download.csdn.net/download/m0_68111267/88700190 实验环境 python3.11及以上pycharmtkinter Tkinter Tkinter是Python的一个标准…

5G-A,一根蓄满能量的弹簧

光阴转瞬&#xff0c;恍然间2024已经来到身边。经历了2023年全球AI技术大爆发&#xff0c;以及智能汽车、虚拟现实、自主科技等诸多领域取得关键进展。想必大家希望知道在新一年中有哪些值得期待的科技增长空间。 如果是这样&#xff0c;那么不妨将目光投向5G-A。 与其他科技领…

组合数据(Python实现)

一、主要目的&#xff1a; 1&#xff0e;熟悉组合数据的类型。 2&#xff0e;掌握列表、元组、字典、集合等组合数据的创建、访问方法。 3&#xff0e;掌握组合数据推导式的使用方法 4&#xff0e;熟悉组合数据的常见应用。 二、主要内容和结果展示&#xff1a; 1. 使用两…

Linux驱动学习—中断

1、中断基础概念 1.1 什么是中断 CPU在正常运行期间&#xff0c;由外部或者内部引起的时间&#xff0c;让CPU停下当前正在运行的程序&#xff0c;转而去执行触发他的中断所对应的程序&#xff0c;这就是中断。 响应中断的过程&#xff1a; <1>中断请求 <2>中断…

C#中使用正则表达式实现汉字转拼音

目录 一、正则表达式基础 二、实例 1.程序入口Form1.cs 2.类库PinYin.cs 三、生成效果 四、实例中的知识点 1.Regex 2.ToCharArray() 3.Regex.IsMatch 方法 &#xff08;1&#xff09;定义 &#xff08;2&#xff09;重载 &#xff08;3&#xff09;IsMatch(Stri…

MySQL将多条数据合并成一条的完整示例

数据库中存的是多条数据&#xff0c;展示的时候需要合并成一条 数据表存储形式如下图 以type分组&#xff0c;type相同的算一条&#xff0c;且保留image和link的所有数据&#xff0c;用groupBy只保留一条数据 解决方案&#xff1a;用GROUP_CONCAT 完整语法如下 group_concat…