完整代码下载:https://download.csdn.net/download/andrew_extra/88614241
1. 项目简介
本课题设计的高校舆情分析系统基本内容包括:(1)使用爬虫技术将贴吧中的热门话题爬取出来并存储到mysql数据库中。(2)系统内容包括用数据可视化的样式将高校的热门贴吧的热点帖子展现出来。(3)筛选重点舆情信息,利用python第三方包wordcloud将重点信息以云图的的方式展现出来(4)利用lambda算法实时计算并对网页内容进行内容实时抽取,情感词分析并进行网页舆情结果存储。(5)通过离线计算,系统需要对历史数据进行回溯,结合人工标注等方式优化情感词库,对一些实时计算的结果进行矫正等。
2. 高校舆情数据抓取
利用 python 的 request + beautifulsoup 等工具包实现对某高校的贴吧进行发帖数据的抓取:
。。。。。。
# 采集某贴吧列表数据
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. 基于大数据的高校舆情数据分析系统
3.1 系统首页与注册登录
3.2 高校最新贴吧信息展示
3.3 高校贴吧热点词分析
对学生发帖文本内容进行文本清洗,去除停用词、标点符号等不能表征舆情效果的词汇,通过词频的统计并构建话题词群:
def tiebas_words_analysis(school):
cate_df = tiebas_df[tiebas_df['school'] == school]
word_count = {}
for key_words in cate_df['title_cut']:
for word in key_words:
if word in word_count:
word_count[word] += 1
else:
word_count[word] = 1
wordclout_dict = sorted(word_count.items(), key=lambda d: d[1], reverse=True)
wordclout_dict = [{"name": k[0], "value": k[1]} for k in wordclout_dict if k[1] > 3]
# 选取 top10 的词作为话题词群
top_keywords = [w['name'] for w in wordclout_dict[:10]][::-1]
top_keyword_counts = [w['value'] for w in wordclout_dict[:10]][::-1]
3.4 高校贴吧数据时间维度分析
4. 结论
本项目利用网络爬虫从某高校贴吧抓取某几个大学学生发帖的数据,包括发帖内容、发帖时间、用户名等信息,对数据完成清洗并结构化存储到数据库中,利用 flask 搭建后台系统,对外提供标准化的 restful api 接口,前端利用 bootstrap + html + css + JavaScript + echarts 实现对数据的可视化分析。系统可实现对高校舆情的监视,查看学生发帖的时间分布情况,近期关注的热点词等功能。
完整代码下载:https://download.csdn.net/download/andrew_extra/88614241
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。
精彩专栏推荐订阅:文章来源:https://www.toymoban.com/news/detail-401618.html
1. Python 毕设精品实战案例
2. 自然语言处理 NLP 精品实战案例
3. 计算机视觉 CV 精品实战案例文章来源地址https://www.toymoban.com/news/detail-401618.html
到了这里,关于基于大数据的高校贴吧舆情数据分析系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!