系列目录
基于Python搜索引擎与推荐算法新闻推荐平台(一)
一、前言
简介
(1)通过Python定时采集新闻数据获取分析数据源,使用jieba进行文本分析关键词,将分析的关键词进行相似性计算,得出新闻的相关性,通过相关性进行内容的推荐。
(2)同理将用户的IP地址进行区域分析,再匹配与用户地区相关的新闻内容。
(3)再通过新闻的阅读量和评论量结合上时间点进行热度值的分析与计算
功能结构
框架、第三方库
涉及技术/框架 | |
---|---|
前端 | Vue.js、iView、ElementUI、ECharts |
后端 | Django、Selenium、jieba、BeatifulSoup |
数据库 | MySQL |
界面
二、使用步骤
1.安装Python依赖
代码如下:
pip install -r requirements.txt
#(requirements.txt文件已经包含在源码根目录下)
2.安装Vue.js依赖
前端页面是通过Vue.js编写的,用的是Vue的脚手架(没有的百度自行安装)
npm install
前端页面里用户端和管理端是分开的两个项目,所以需要再两个项目下都进行依赖安装!
3.数据库创建/数据导入
数据库表如下
SQL文件已经放在了Django项目根目录下,自行Navicat或其他方式导入即可。
除去Django框架自动生成的数据表,剩下一共13张表,嫌麻烦没有添加外键依赖,所以可能不太规范。并且第一次使用Django来做项目,所以对于ORM的操作不太熟悉,以至于后面的多表查询只能被拆分成单表查询,主要是因为Django的多表查询是需要中间表作为辅助进行操作的,但是我在做这个项目时,数据库早已经建立好,并且爬虫部分已经写好了,时间关系就没有整个颠覆重新搞。
4.数据库配置
使用全局搜索找到mysql就能找到需要配置数据的地方了。由于整个框架零零散散的并不是同时期同步进行的,导致数据库的配置有些稀碎QAQ.....
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'news',
'USER': 'root',
'PASSWORD': 'root',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
5.启动项目
Django项目启动
# 进入newsapi的目录
python manage.py runserver 0.0.0.0:8000
Vue项目启动
//用户端
npm run dev
//管理端
npm run serve
总结
整体上这个项目完成度相对来说还挺高的,目前还存在的Bug是管理端的两个系统控制器时不时会出现刹不住车的情况,其本质上是因为线程启动之后,对于任务管理的控件只能取消间隔任务,但是并不能直接关闭线程。另外一个文件就是项目的结构听混乱的,找时间重新整理整理。
项目的源码已更新,有需要的可以自行下载😀
欢迎提交问题和错误
个人码云主页,欢迎交流!!