开发技术
前端:vue.js、websocket、element-ui、echarts
后端:springboot+mybatis-plus
数据库:mysql、neo4j图数据库(知识图谱)
数据分析:hadoop+spark实时计算
算法:lstm情感分析模型、KNN+CNN卷积神经模型+Kmeans预测、协同过滤算法(基于用户+基于物品全部实现)、MLP深度学习神经网络推荐算法、SVD深度学习神经网络混合CF推荐算法
第三方接口:阿里云短信、百度AI平台、支付宝沙箱支付
爬虫:python实现、chrome driver
创新点
知识图谱可视化+知识图谱推荐实现
4种机器学习/深度学习/神经网络推荐算法
用户修改密码通过短信验证码
AI识别身份证号
支付宝沙箱支付
Spark大屏统计
Python爬虫
lstm评论情感分析
前后端分离
…10-20种创新点
代码讲解技术讲解
首先需要创建数据库,这里使用的是navicat
-- ----------------------------
-- Table structure for tb_detail
-- ----------------------------
DROP TABLE IF EXISTS `tb_detail`;
CREATE TABLE `tb_detail` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`link` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '链接',
`title` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '视频名',
`img` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '图片',
`ctime` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '时间',
`tags` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '标签',
`coins` double NULL DEFAULT NULL COMMENT '硬币',
`likes` double NULL DEFAULT NULL COMMENT '点赞',
`favs` double NULL DEFAULT NULL COMMENT '收藏',
`shares` double NULL DEFAULT NULL COMMENT '转发',
`up_name` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'up主名字',
`up_img` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'up主头像',
`up_fans` double NULL DEFAULT NULL COMMENT 'up粉丝数量',
`des` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '视频描述',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 866 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = 'bilibili视频详细信息表' ROW_FORMAT = Dynamic;
其次运行Python数据采集
# -*- codeing = utf-8 -*-
import re
from time import sleep
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from lxml import etree
import requests
from base import headers
from model import check_detail_exist, check_video_exist
from utils import format_wan
options = webdriver.ChromeOptions()
# 不加载图片
# options.add_experimental_option('prefs', {'profile.managed_default_content_settings.images': 2})
# options.binary_location = r"C:\\chromedriver.exe"
chrome_driver_path = r"E:\\python_spark_bilibili_rec2024\\Bili-Spider\\chromedriver.exe"
#driver = webdriver.Chrome(options=options)
driver = webdriver.Chrome(chrome_driver_path,options=options)
wait = WebDriverWait(driver, 30) # 设置等待时间
# 处理一页的数据
def do_page(tree):
lis = tree.xpath('//div[@class="video-card"]')
print('总共热门视频=', len(lis))
for li in lis:
运行截图
视频
计算机毕业设计吊打导师Python+Spark视频推荐系统 短视频推荐系统 视频流量预测系统 短视频爬虫 视频数据分析 视频可视化 视频大数据 大数据毕业设计