问题描述

新闻标题是新闻的主旨,从新闻标题中可以进行多种内容的挖掘,通过对学校新闻网的新闻进行分析获得热点词,基于这些标题中的热点词设计并实现构建词云的算法,最后根据词云模型统计热点词的词频,可以快速了解这段时间学校的工作重心和工作内容。

代码实现

实现思路

1.导入所需要的包
import requests
import jieba
import wordcloud
import matplotlib.pyplot as plt
from os import path
from lxml import etree
2.伪装成浏览器用户
headers={'Host': 'www.haue.edu.cn','Referer': 'http://www.haue.edu.cn/info/1034/1502.htm','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36 Edg/91.0.864.48'
}
3.发送请求获取响应信息
def getjson(url):response = requests.get(url, headers=headers, timeout=3)if response.status_code == 200:return response.content.decode("utf-8")else:print("Fail to get page")return None

测试

response = getjson('http://www.haue.edu.cn/xwdt/xxxw.htm')
response

4.爬虫选择器定位

浏览器打开F12,查看页面结构,我们需要得到的是li标签中的信息

可以看出我们需要的信息在‘/html/body/div[3]/div/div[2]/div[2]/ul/li’

response = getjson(url)
tree = etree.HTML(response)
li_list  = tree.xpath('/html/body/div[3]/div/div[2]/div[2]/ul/li')
li_list

info_list = []
for li in li_list :title = li.xpath('./a/text()') # 获取a标签内容url = li.xpath('./a/@href')[0] # 获取a标签href链接item = {}item['title'] = titleitem['url'] = 'http://www.haue.edu.cn/' + url[3:]info_list.append(item)
info_list.append(title)
info_list

5.屏蔽无用词并分词
article_dict = {}
content = ''.join('%s' %a for a in info_list)
article_jieba = jieba.lcut(content)
stop_words = set(line.strip() for line in open('stopwords.txt',encoding='utf-8'))for data in article_jieba:if len(data) == 1 or data in stop_words:continueif data not in article_dict:article_dict[data] = 1else:article_dict[data] += 1article_list = list(article_dict.items())cloud_data = ''
for word in article_list:cloud_data += word[0] + ' '

完整代码

import requests
import jieba
import wordcloud
import matplotlib.pyplot as plt
from os import path
from lxml import etree# 伪装用户浏览器
headers={'Host': 'www.haue.edu.cn','Referer': 'http://www.haue.edu.cn/info/1034/1502.htm','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.101 Safari/537.36 Edg/91.0.864.48'
}def getjson(url):# 发送请求,得到响应消息response = requests.get(url, headers=headers, timeout=3)# 响应信息解析if response.status_code == 200:return response.content.decode("utf-8")else:print("Fail to get page")return Nonedef getPageInfo():info_list=[]for i in range (0,157):if i == 0:url = 'http://www.haue.edu.cn/xwdt/xxxw.htm'else:i = str(i)url = 'http://www.haue.edu.cn/xwdt/xxxw/' + i + '.htm'response = getjson(url)tree = etree.HTML(response)# 爬虫选择器定位li_list  = tree.xpath('/html/body/div[3]/div/div[2]/div[2]/ul/li')for li in li_list :# 获取新闻标题title = li.xpath('./a/text()')info_list.append(title)return info_listdef createWordCloud(info_list):article_dict = {}# 将新闻标题连接成一串字符content = ''.join('%s' %a for a in info_list)# 使用jieba分词article_jieba = jieba.lcut(content)# 加载屏蔽词stop_words = set(line.strip() for line in open('stopwords.txt',encoding='utf-8'))# 取出有用的的词for data in article_jieba:if len(data) == 1 or data in stop_words:continueif data not in article_dict:article_dict[data] = 1else:article_dict[data] += 1article_list = list(article_dict.items())cloud_data = ''for word in article_list:cloud_data += word[0] + ' 'backgroud_Image = plt.imread('bg.jpg')w = wordcloud.WordCloud(# 设置背景颜色background_color='white', # 设置背景图片mask=backgroud_Image, # 若是有中文的话,这句代码必须添加,不然会出现方框,不出现汉字font_path = "simhei.ttf", # 设置最大显示的字数max_words=2000, # 设置有多少种随机生成状态,即有多少种配色方案random_state=30, # 设置字体最大值max_font_size=200, )w.generate(cloud_data)# 显示词云图plt.imshow(w)# 是否显示x轴、y轴下标plt.axis('off')plt.show()# 获得模块所在的路径d = path.dirname(__file__)w.to_file(path.join(d, "词云.jpg"))if __name__ == '__main__':createWordCloud(getPageInfo())

实验结果

资源下载
使用的屏蔽词库【点击下载】
使用的字体【点击下载】

【Python数据分析学习实例】动态新闻标题热点挖掘相关推荐

  1. python文本热点问题挖掘_Pyhon数据分析项目—动态新闻标题热点挖掘.pdf

    <用Python 玩转数据>项目-动态新闻标题热点挖掘 一.背景 新闻标题是新闻的主旨,从新闻标题中可以进行多种内容的挖掘,例如可以爬取一定时 间段内的新闻进行分析获得热点词.新浪各地新闻 ...

  2. Python:物联网数据分析课程设计动态新闻标题热点挖掘

    一.设计内容及目的 (一)设计内容 通过爬取学校新闻网页,获取新闻标题,通过词频统计制作出词云并生成图片. (二)设计目的 新闻标题是新闻的主旨,从新闻标题中可以进行多种内容的挖掘,通过对学校新闻网的 ...

  3. 【Python数据分析学习实例】对学生成绩单和信息进行整合以及数据分析

    问题描述 自建EXCEL文件,分为2个工作区,分别存放学生信息表(不少于30人)和班级职务表(不少于4种职务). 如信息表: 学号 姓名 性别 数学 英语 Python 通信技术 1001 张三 男 ...

  4. Python数据分析学习 一

    Python数据分析学习系列一 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下载 第1章 准备工作 1.1 ...

  5. 动态新闻标题热点分析

    动态新闻标题热点分析 背景描述 基本上每天都会发生一些令社会热议的热点新闻舆情事件,我通过python针对这些热点新闻舆情事件热点词汇进行了盘点,汇总并展示热点词可视化,供各位参考. 为完成该项工作, ...

  6. Python数据分析学习系列 九 绘图和可视化

    Python数据分析学习系列 九 绘图和可视化 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下载 信息可视化 ...

  7. Python数据分析学习系列 十三 Python建模库介绍

    Python数据分析学习系列 十三 Python建模库介绍 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下载 ...

  8. Python数据分析学习四 NumPy基础:数组和矢量计算

    Python数据分析学习系列四NumPy基础:数组和矢量计算 资料转自(GitHub地址):https://github.com/wesm/pydata-book 有需要的朋友可以自行去github下 ...

  9. Python数据分析学习笔记:使用SciKit-Learn进行数据规范化

    Python数据分析学习笔记:使用SciKit-Learn进行数据规范化 数据规范化是数据挖掘的一项基础工作.不同评价指标往往具有不同的量纲,数值见的差别可能很大,不进行处理可能会影响到数据分析的结果 ...

最新文章

  1. 100万奖金池,这不仅仅是场比赛
  2. JS高级 - 面向对象5(继承,引用)
  3. 2-02字符编码的演化
  4. java如果把字符串转成对象_Java中的重复对象:不仅仅是字符串
  5. Android 全局悬浮按钮,悬浮按钮点击事件
  6. 45K!拿下 AI 技术岗,这些知识点全考了!
  7. 生成名片二维码 python
  8. 计算机系统-理论-静态存储器/动态存储器
  9. iReal Pro 2020 for Mac(模拟乐队音乐陪练工具)
  10. 考研复试C程序设计基础
  11. 中学生读《皮囊》有感相关体会4300字[图]
  12. Windows平台Qt添加OpenCV模块
  13. 程序员的自我修养:如何高效学习
  14. Android 应用提示Detected problems with API问题
  15. 用函数的知识来编写一个判断素数的小程序
  16. 新寓言——没有窝的猪
  17. 机器学习入门视频总结
  18. Getting Started with Boost
  19. 图像滤镜处理算法:柔化、光照、放大镜、哈哈镜
  20. VMware ubuntu虚拟机的安装过程记录

热门文章

  1. 用C语言计算1到20的阶乘之和,用C语言计算1~20的阶乘之和
  2. 3D软件教程:浩辰3D软件中如何进行个性化设置?
  3. 4-python数据容器
  4. 单点登录系统(流程简介)
  5. 欧盟RoHS怎么做?费用是多少?豁免条款的更新
  6. AspectJ中JoinPoint和ProceedingJoinPoint注解的使用
  7. 控制回路:DI、DO、AI、AO信号是什么?
  8. RethinkDB联合创始人分享的44条工程管理经验
  9. java将字符串遍历成数组_Java遍历字符串数组的几种方法
  10. char类型与int类型的转换