基于大数据的高校贴吧舆情数据分析系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。

一项目简介

   本课题设计的高校舆情分析系统基本内容包括:(1)使用爬虫技术将贴吧中的热门话题爬取出来并存储到mysql数据库中。(2)系统内容包括用数据可视化的样式将高校的热门贴吧的热点帖子展现出来。(3)筛选重点舆情信息,利用python第三方包wordcloud将重点信息以云图的的方式展现出来(4)利用lambda算法实时计算并对网页内容进行内容实时抽取,情感词分析并进行网页舆情结果存储。(5)通过离线计算,系统需要对历史数据进行回溯,结合人工标注等方式优化情感词库,对一些实时计算的结果进行矫正等

二、功能组成

   高校舆情数据抓取


  # 采集某贴吧列表数据
  def spider_tieba_list(self, url):
      print(url)
      response = requests.get(url, headers=self.headers)
      try:
          response_txt = str(response.content, 'utf-8')
      except Exception as e:
          response_txt = str(response.content, 'gbk')
      # response_txt = str(response.content,'utf-8')
      bs64_str = re.findall(
          '<code class="pagelet_html" id="pagelet_html_frs-list/pagelet/thread_list" style="display:none;">[.\n\S\s]*?</code>',
          response_txt)

      bs64_str = ''.join(bs64_str).replace(
          '<code class="pagelet_html" id="pagelet_html_frs-list/pagelet/thread_list" style="display:none;"><!--', '')
      bs64_str = bs64_str.replace('--></code>', '')
      html = etree.HTML(bs64_str)
      # 标题列表
      title_list = html.xpath('//div[@class="threadlist_title pull_left j_th_tit "]/a[1]/@title')
      # 链接列表
      link_list = html.xpath('//div[@class="threadlist_title pull_left j_th_tit "]/a[1]/@href')
      # 发帖人
      creator_list = html.xpath('//div[@class="threadlist_author pull_right"]/span[@class="tb_icon_author "]/@title')
      # 发帖时间
      create_time_list = html.xpath('//div[@class="threadlist_author pull_right"]/span[@class="pull-right is_show_create_time"]/text()')

      for i in range(len(title_list)):
          item = dict()
          item['create_time'] = create_time_list[i]
          if item['create_time'] == '广告':
              continue
          item['create_time'] = self.get_time_convert(item['create_time'])
          item['title'] = self.filter_emoji(title_list[i])
          item['link'] = 'https://tieba.xxxx.com' + link_list[i]
          item['creator'] = self.filter_emoji(creator_list[i]).replace('主题作者: ', '')
          item['content'] = self.filter_emoji(item['title'])
          item['school'] = self.tieba_name
          self.tieba_items.append(item)
      # 保存帖子数据
      self.saver.writelines([json.dumps(item, ensure_ascii=False) + '\n' for item in self.tieba_items])
      self.saver.flush()
      self.tieba_items.clear()

      # 如果有下一页继续采集下一页
      nex_page = html.xpath('//a[@class="next pagination-item "]/@href')
      if len(nex_page) > 0:
          next_url = 'https:' + nex_page[0]

          # 抓取 10000 条数据
          if float(next_url.split('=')[-1]) < 2000:
              self.spider_tieba_list(next_url)
  

三、系统实现

3.1 系统首页与注册登录

在这里插入图片描述

3.2 高校最新贴吧信息展示

在这里插入图片描述

3.3 高校贴吧热点词分析

在这里插入图片描述

3.4热门小吃分析

在这里插入图片描述

四. 总结

  本项目利用网络爬虫从某高校贴吧抓取某几个大学学生发帖的数据,包括发帖内容、发帖时间、用户名等信息,对数据完成清洗并结构化存储到数据库中,利用 flask 搭建后台系统,对外提供标准化的 restful api 接口,前端利用 bootstrap + html + css + JavaScript + echarts 实现对数据的可视化分析。系统可实现对高校舆情的监视,查看学生发帖的时间分布情况,近期关注的热点词等功能。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值