温馨提示:文末有 CSDN 平台官方提供的博主 Wechat / QQ 名片 :)

1. 项目简介

利用网络爬虫技术从某新闻网站爬取最新的新闻数据,并进行版块分类,对某篇版块下的所有新闻进行中文分词,保留表征能力强名词和动词作为关键词,并进行关键词词频统计,同时对新闻进行词云统计和词群分析。对不同版块的新闻热度进行统计分析。利用 flask 搭建后台,构建标准的 restful 接口,前端利用 bootstrap + echarts + jquery 调用后台接口,并进行前端的渲染可视化。

2. 功能组成

基于Python社会热点新闻关键词数据分析系统的功能主要包括:

3. 新闻数据爬虫

利用 Python 的 request + beautifulsoup 实现某新闻网站的新闻、娱乐、财经、体育、科技、汽车、女人、旅游、房产、教育、游戏等版块的最新新闻数据,完成数据清洗后存储到文件系统或数据库中。

......news_infoes = []
# 分别爬取每个版块的热门新闻
for category in all_categories_map:cate_url = all_categories_map[category]print('--> 爬取 {} 版块:{}'.format(category, cate_url))html = get_html(cate_url)soup = BeautifulSoup(html, 'lxml')items = soup.find_all('tr')news_title_set = set()for item in tqdm(items):try:tds = item.select('td')if len(tds) < 2:continuenews_url = tds[0].a['href']news_soup = BeautifulSoup(get_html(news_url), 'lxml')if news_soup.title is None or news_soup.title.string.strip() == '':news_title = tds[0].a.text.strip()else:news_title = news_soup.title.string# 避免新闻爬取重复if news_title in news_title_set:continuenews_title_set.add(news_title)click_count = int(tds[1].text.strip())news_info = {'category': category, 'title': news_title, 'url': news_url, 'click_count': click_count}news_infoes.append(news_info)if len(news_infoes) == 10:file_out.writelines([json.dumps(info, ensure_ascii=False) + '\n' for info in news_infoes])file_out.flush()news_infoes.clear()time.sleep(0.5)except:continue......

4. 基于Python热点新闻关键词数据分析系统

4.1 系统注册登录

4.2 话题词频统计与词群分析

通过对新闻关键词抽取、词频统计,并对多个关键词进行聚类形成词群:

def news_words_analysis(category):......word_count = {}for key_words in cate_df['title_cut']:for word in key_words:if word in word_count:word_count[word] += 1else:word_count[word] = 1wordclout_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]# 选取 top10 的词作为话题词群top_keywords = [w['name'] for w in wordclout_dict[:10]][::-1]top_keyword_counts = [w['value'] for w in wordclout_dict[:10]][::-1]......

4.3 新闻热度分析

新闻热度主要依据每个版块的所有新闻的关注人数的分布情况,前端利用 echarts 和 ecStat 实现密度分布直方图的可视化:

var dom = document.getElementById("main1");
var myChart = echarts.init(dom);
var app = {};
option = null;
var girth = data['click_counts'];
var bins = ecStat.histogram(girth, 'scott');var interval;
var min = Infinity;
var max = -Infinity;var bins_data = echarts.util.map(bins.data, function (item, index) {var x0 = bins.bins[index].x0;var x1 = bins.bins[index].x1;interval = x1 - x0;min = Math.min(min, x0);max = Math.max(max, x1);return [x0, x1, item[1]];
});function renderItem(params, api) {var yValue = api.value(2);var start = api.coord([api.value(0), yValue]);var size = api.size([api.value(1) - api.value(0), yValue]);var style = api.style();return {type: 'rect',shape: {x: start[0] + 1,y: start[1],width: size[0] - 2,height: size[1]},style: style};
}option = {backgroundColor: '#F9F9F9',title: {text: key + '版块关注热度分布直方图(关注次数最大值' + data['max_click_count'] + ',最小值' + data['min_click_count'] + ')',left: 'center',top: 10},color: ['rgb(25, 183, 207)'],grid: {top: 80,containLabel: true},tooltip: {trigger: 'axis',axisPointer: {type: 'shadow'}},xAxis: [{type: 'value',min: min,max: max,interval: interval}],yAxis: [{type: 'value',}],series: [{name: '新闻个数',type: 'custom',renderItem: renderItem,label: {show: true,position: 'insideTop'},encode: {x: [0, 1],y: 2,tooltip: 2,label: 2},data: bins_data}]
};
if (option && typeof option === "object") {myChart.setOption(option, true);
}

5. 总结

本项目利用网络爬虫技术从某新闻网站爬取最新的新闻数据,并进行版块分类,对某篇版块下的所有新闻进行中文分词,保留表征能力强名词和动词作为关键词,并进行关键词词频统计,同时对新闻进行词云统计和词群分析。对不同版块的新闻热度进行统计分析。利用 flask 搭建后台,构建标准的 restful 接口,前端利用 bootstrap + echarts + jquery 调用后台接口,并进行前端的渲染可视化。

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

技术交流认准下方 CSDN 官方提供的学长 QQ 名片 :)

精彩专栏推荐订阅:

1. Python 毕设精品实战案例
2. 自然语言处理 NLP 精品实战案例
3. 计算机视觉 CV 精品实战案例

基于Python热点新闻关键词数据分析系统相关推荐

  1. 基于Python实现的业务数据分析系统

    实验概况 实验目的:掌握设计.开发.测试.发布.调试经典三层架构软件的基本方法.工具和流程,理解层次体系结构风格基本原理.结构和特点.掌握设计系统时的"高内聚低耦合"的思想.背景及 ...

  2. 基于Python的直播平台数据分析可视化系统

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目简介 随着移动互联网和5G的快速发展,视频直播行业呈现出丰富多元的内容形态,覆盖更多的场景和受众,视频成为 ...

  3. python 文件格式转换_数据分析:基于Python的自定义文件格式转换系统

    ( 白宁超 2018年7月16日14:47:41 ) 导读:随着大数据的快速发展,自然语言处理.数据挖掘.机器学习技术应用愈加广泛.针对大数据的预处理工作是一项庞杂.棘手的工作.首先数据采集和存储,尤 ...

  4. 基于python的气象数据分析统计服_基于Python的风向风速数据分析的设计与实现

    基于 Python 的风向风速数据分析的设计与实现 李文倩 ; 刘婕 [期刊名称] < <信息通信> > [年 ( 卷 ), 期] 2019(000)009 [摘要] Pyth ...

  5. 基于大数据的旅游数据分析系统的设计与实现

    基于大数据的旅游数据分析系统的设计与实现 摘    要 网络技术的不断发展,使网络成为人们的日常生活中不可缺少的一部分,而旅游数据分析系统是网络的一种新型体现,它以其特有的便捷和快速的特点得到了广泛的 ...

  6. 基于python 的电影票房可视化系统

    一.介绍 电影票房可视化系统是一个实时分析电影票房的系统,应用Python爬虫.Flask框架.Echarts等技术实现. 二.系统运行图 首页 实时票房排名 票房排行top10 电影类型票房占有率 ...

  7. python新闻聚合_基于Python的新闻聚合系统网络爬虫研究

    基于 Python 的新闻聚合系统网络爬虫研究 左卫刚 [摘 要] 摘 要 本研究旨在创建一个能够从不同页面布局中提取数据的开源爬 虫,其中包括网络爬虫. API .网络爬虫调度器以及 Socket ...

  8. python微信好友分析_基于python实现微信好友数据分析(简单)

    一.功能介绍 本文主要介绍利用网页端微信获取数据,实现个人微信好友数据的获取,并进行一些简单的数据分析,功能包括: 1.爬取好友列表,显示好友昵称.性别和地域和签名, 文件保存为 xlsx 格式 2. ...

  9. python软件开发电子产品测试方向_基于Python语言的自动测试系统通用软件平台实现...

    期 No.5 2019 年 3 月 Mar. 2019 收稿日期: 2018-05-06 稿件编号: 201805027 基金项目: 中国电科第十研究所发展基金 ( SSJ-1784 ) 作者简介: ...

最新文章

  1. TalkingData:2014年移动打车应用行业报告
  2. 【控制】《多无人机协同控制技术》周伟老师-第9章-单无人机目标跟踪飞行控制策略
  3. Redis进阶-细说分布式锁
  4. OpenCASCADE:使用 XDE 文档
  5. JSON序列——主从表查询
  6. java中1%3c%3c2_从零开始java代码审计系列(四)
  7. 2.ubuntu 配置目录
  8. NVIDIA携大型台湾服务器制造商:为推AI数据中心设计方案
  9. 俄罗斯方块、纯前端实现俄罗斯方块、俄罗斯方块代码
  10. VScode怎么查看python源码
  11. 手把手教你使用R语言做出一篇20分SCI文章的交互效应表(p for Interaction)
  12. 5G无线关键技术 — 新型传输波形技术和先进编码与调制技术
  13. 非香农类信息不等式_信息论
  14. 民数记研读3——于宏洁
  15. 谷歌play下载无法安装_否,您无法从Google Play下载32GB SD卡
  16. 数据结构与算法课程设计之五子棋(人机)
  17. PHP之linux(一)linux基础
  18. RecyclerView的使用(二):添加头部和尾部
  19. Final Cut Pro如何安装自定义lut?final cut pro的lut安装在哪个文件夹?
  20. 埋在大学时光里的那些人

热门文章

  1. c 语言编译程序的首要工作,2017年计算机基础试题选择题「附答案」
  2. win7系统技巧:设置共享打印机
  3. [usaco6.1.1Postal Vans]
  4. PHP云盘网盘系统源码+快速对接多家云存储+VIP付费下载功能
  5. 2018/8/22部分算法总结 二维几何常用算法
  6. SEVERE: [FATAL] [INS-32038] The operating system group specified for central inventory
  7. 概括TTL、RS32、RS485特点及区别
  8. C++ primer plus 第六章课后习题
  9. 计算机蓝屏幕亮度,电脑屏幕亮度怎么调,电脑屏幕亮度调节方法
  10. 关于抽象工厂模式的定义和实现