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

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

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

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

1、项目介绍

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

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

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

在这里插入图片描述

2、项目界面

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

在这里插入图片描述

(2)系统首页

在这里插入图片描述

(3)数据爬虫设置

在这里插入图片描述

(4)新闻数据管理

在这里插入图片描述

(6)新闻数据详情页面
在这里插入图片描述

(7)新闻数据评论功能

在这里插入图片描述

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

在这里插入图片描述

(9)注册登录界面

在这里插入图片描述

3、项目说明

网络爬虫:通过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、源码获取

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

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

  • 28
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue TS大数据可视化实例的源码是基于Vue框架和TypeScript语言编写的。这个实例是一个用于展示大量数据的可视化界面,可以通过图表、图形等形式直观地呈现数据。 在源码中,首先会引入Vue和需要的其他插件或库,例如echarts、d3等用于数据可视化的库。然后,会定义一个Vue的根组件,这个组件将包含整个可视化界面的布局和逻辑。根组件会包含子组件,用于展示具体的图表或图形。 在组件的代码中,会使用TypeScript来定义数据的类型和接口,以确保代码的类型安全。例如,可以定义一个接口来描述一个数据点的属性,包括x轴坐标、y轴坐标等。然后,在组件中,可以使用这个接口定义数据数组的类型,并进行数据的处理和绑定。 在组件的生命周期钩子函数中,会进行数据的加载和处理。可以从后端获取大量的数据,并对数据进行过滤、排序或其他操作。然后,将处理后的数据传递给子组件,用于图表的绘制和展示。 在子组件中,可以使用echarts或d3等库来创建图表或图形。可以根据需求选择合适的图表类型,例如饼图、柱状图、折线图等。还可以设置图表的样式、颜色、标签等,以使得数据可以更直观地展示给用户。 总之,Vue TS大数据可视化实例的源码包括了用于展示大量数据的可视化界面的逻辑和布局代码,以及使用echarts、d3等库创建图表或图形的代码。它通过Vue框架和TypeScript语言的使用,可以提高代码的可维护性和类型安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值