Skip to content

通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐

License

Notifications You must be signed in to change notification settings

loks666/NewsRecommends

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python网络爬虫与推荐算法的新闻推荐平台

介绍

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

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

涉及框架:Django、jieba、selenium、BeautifulSoup、vue.js

软件功能结构/页面展示

输入图片说明

用户端 输入图片说明 输入图片说明 输入图片说明 输入图片说明 输入图片说明

管理端 输入图片说明 输入图片说明 输入图片说明

保姆级安装教程

  1. 安装Python环境

    安装包下载:https://www.python.org/ftp/python/3.6.8/python-3.6.8-amd64.exe Snipaste_2022-04-21_08-49-37

    然后就是各种下一步,安装完就行了,测试安装是否成功就打开CMD

    pip --version
    python --version
    

    出现下面的内容就是安装成功了

    Snipaste_2022-04-21_08-54-04

  2. 安装Python依赖

    Python就一个文件夹"FinalProject"

    打开CMD --> FinalProject (注意此处的路径是我本地的,改成你自己电脑上的即可)

    执行 pip install -r requirements.txt安装Python项目运行的所需依赖

  3. 安装NodeJS

    下载地址:https://nodejs.org/dist/v16.14.2/node-v16.14.2-x64.msi

    一直下一步就完事了

  4. 安装NodeJS依赖

    前端页面分成了两个项目,所以两个项目都需要分别安装依赖

    用户端前端:News-Page

    打开CMD --> News-Page (注意此处的路径是我本地的,改成你自己电脑上的即可)

    执行 npm install安装NodeJS所需依赖

    管理端前端:vue-admin-template-master

    打开CMD --> vue-admin-template-master (注意此处的路径是我本地的,改成你自己电脑上的即可)

    执行 npm install安装NodeJS所需依赖

    注:这个过程很慢,并且有可能因为网络超时导致失败之类的,所以自己多试几次

  5. 数据库创建/数据导入

    数据库使用的是MySQL,没安装的可以下载一个phpstudy(小皮面板)

    小皮面板上直接启动MySQL服务就行了

    然后就是使用Navicat去连接MySQL服务器

    默认账号/密码应该都是 root

    然后新建一个news数据库 把目录FinalProject下的news.sql导入到数据库中

  6. 项目数据库配置

F:\code\NewsRecommends\FinalProject\newsapi\newsServer\settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'news',
        'USER': 'root', // 自己的数据库账号
        'PASSWORD': 'root', // 自己的数据库密码
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

F:\code\NewsRecommends\FinalProject\newsapi\Spider\OperationMysql.py
    def __init__(self):
        self.conn = pymysql.connect(
            host='127.0.0.1',  # 连接的数据库服务器主机名
            port=3306,  # 数据库端口号
            user='root',  # 数据库登录用户名
            passwd='root',
            db='news',  # 数据库名称
            charset='utf8',  # 连接编码
            cursorclass=pymysql.cursors.DictCursor
        )

到此所有需要安装的东西都安装完了

启动

Django启动

# 打开CMD
cd FinalProject\newsapi
# 注意此处的路径是我本地的,改成你自己电脑上的即可
python manage.py runserver 127.0.0.1:8000

前端项目启动

//用户端
cd News-Page
npm run dev 
//管理端
cd vue-admin-template-master
npm run serve

使用

可以直接看到的是两个页面

客户端:

http://127.0.0.1:8080

管理端:

http://127.0.0.1:9090

然后爬虫的状态是因为我数据的记录是开着的,所以需要自己手动把数据库里的爬虫和解析器状态都改成关闭

news_api_spiderstate表

status这一列全部改成0

然后再到管理端打开就行了

时间设置的短一些,不然等半天也不会有数据

About

通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published