【GitHub已开源】某博热点事件评论数据分析与用户情感分析平台完整项目

找遍全网无奈只能自己开发某博热点评论数据爬取与用户情感分析平台,这就是技术人的创新!

最近想看一下微博热点评论的用户人群情感趋势,想到的就是去爬取某博的评论数据,然后进行一个可视化的情感分析。想想吧,这个项目肯定网上一大堆,然后呢,自己去搜索,可把我气的。Github和csdn居然没有一个能够参考的好项目,不是拉下来跑不了。就是一些过时的程序,早都被反爬了。这可把我气的,花了两天时间自己研究琢磨了一个平台。现在免费提供给大家,希望大家多多收藏。相信我,你以后一定会用到的!


前言

为了能让小白能够看懂我先来介绍一下我使用到的一些技术

  • 前端为layui和echart
  • 后端为python flask框架
  • MYSQL数据库
  • 情感分析NLP
  • 爬虫技术

一、layui介绍

Layui是一个基于Web界面的前端UI框架,提供了丰富的组件和接口,并且易于使用和定制。它被广泛应用于Web开发项目中,可以帮助开发者快速搭建出美观、高效的用户界面。Layui采用了模块化的设计方式,使得开发者可以根据需要选择需要的组件,同时也可以方便的自定义扩展组件。它的主要特点包括简洁、易用、减少样式冲突、响应式设计。

二、echart介绍

Echart是一种用于数据可视化的JavaScript图表库,它支持多种图表类型,如折线图、柱状图、饼图、散点图等,并且具有动态交互性和可定制性。Echart可以通过简单的JavaScript代码来实现丰富的数据可视化效果,适用于不同领域的数据分析与展示。

三、开发过程

3.1 后端设计

3.1.1 使用flask web框架快速搭建

在这里插入图片描述

  1. Controller里面是和前端交互的API。
  2. Dao里面是与数据库连接的映射接口实体
  3. Mapper里面是与数据库连接的接口
  4. Service里面实现爬虫数据逻辑
  5. Static里面存放静态资源数据
  6. Templates存放前端HTML文件里面集成了类UI
  7. Utils是我自己分装的一些工具实体,里面有一些词云生成器和数据库脚本一键生成工具。数据库脚本一键生成工具,下期我再介绍。
    先看效果图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.1.2 某博热点数据爬取

爬取思路,大神勿喷:

3.1.2.1 登录某博网页

登录地址为:微博地址
在这里插入图片描述
如果没有登录记得登录,登录成功后进入微博的H5页面。

3.1.2.2 点击进入你要爬取的热点事件

在这里插入图片描述

  • 要注意现在需要获取一下网站的cookie
  • 获取方式为如下:
    在这里插入图片描述
3.1.2.3 点击进入你要爬取的评论目标

在这里插入图片描述
评论链接:评论链接
在这里插入图片描述
有个恶心的问题是爬取这个链接根本不是固定的,需要我们自己手动翻页收集,这里应该是人家的反扒策略。
在这里插入图片描述
所以我只能将所有链接复制填写到输入框中进行遍历。遍历时要进行字符串处理

# 识别多页评论数据
def get_readUrl(data_url):
    data = data_url
    data_goods = []
    str_data = data.split("hotflow")
    for k in str_data:
        if len(k) > 10:
            data = k[:78]
            print(data)
            data_goods.append(data)
    return data_goods
3.1.2.4 抓取评论url并且获取cookie

代码如下:

# 爬取微博热点评论

# 获取当前热搜信息
import json
import time

import requests

from service.feelcheck import write


# 获取某个信息
def get_data(hot_band_url, data_goods, cookie, name):
    mydata_pa = []
    headers = {
   
        'user_agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                      'Chrome/112.0.0.0 Safari/537.36 Edg/112.0.1722.39',
        'cookie': cookie,
        'Accept': 'application/json, text/plain, */*'
    }
    id = 0
    try:
        for k in data_goods:
            print(hot_band_url + k)
            data = requests.get(hot_band_url + k, headers=headers)  # 请求
            # time.sleep(1)  # 防止被监控
            data = data.json()
            data = data['data']['data']
            for k in data:
  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沉默着忍受

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值