实战|用可视化方式看新闻,迅速了解最新时事热点

今天教大家如何爬取新浪网新闻数据,通过词云可视化展示新闻关键词,快速了解最新的新闻热点。这里爬取了**2500**条新闻数据进行演示。 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5803edbb27bc43ea9b42cd770a876520~tplv-k3u1fbpfcp-zoom-1.image) PS:这里采集的主要是国内最新新闻数据。先来看一下数据: ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8f1f9ec2c5de43848b8820742aac441c~tplv-k3u1fbpfcp-zoom-1.image) # 1、网页分析 在开始采集之前先说一下新闻数据来源(新浪网) ``` https://news.sina.com.cn/china/ ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a1fb1fb56c6d4637b2fc9973e4dd6d77~tplv-k3u1fbpfcp-zoom-1.image) ### 下一页分析 我们想要采集多条数据,因此需要找到下一页的规律 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/59f6cf19a1f74aee9f4cc5e810c449c9~tplv-k3u1fbpfcp-zoom-1.image) 点击第二页的时候,发现网页链接没有变化,这里数据是通过异步加载过来,因此查看network,找到了目标异步链接: ``` https://feed.sina.com.cn/api/roll/get?pageid=121&lid=1356&num=20&versionNumber=1.2.4&page=2&encode=utf-8&callback=feedCardJsonpCallback&_=1619440444354 ``` 但发现callback=feedCardJsonpCallback&_=1619440444354,可以去掉,因此最终链接如下: ``` https://feed.sina.com.cn/api/roll/get?pageid=121&lid=1356&num=20&versionNumber=1.2.4&page=2&encode=utf-8 ``` 参数page是页数,经过测试page范围在1~125,到126的时候就请求到的是空数据。每一页一共有20条,因此一共是**2500**条新闻数据。 ### json数据结构 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/fb86edaac3ba4f8ba3f8cfb5c2673c14~tplv-k3u1fbpfcp-zoom-1.image) ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/32e4f09f3b654ae8bf169122b4c1a465~tplv-k3u1fbpfcp-zoom-1.image) 这里咱们学院获取三个字段(标题title、原标题intro、关键词keywords) # 2、采集数据 今天教大家如何爬取新浪网新闻数据,通过词云可视化展示新闻关键词,快速了解最新的新闻热点。这里爬取了**2500**条新闻数据进行演示。 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5803edbb27bc43ea9b42cd770a876520~tplv-k3u1fbpfcp-zoom-1.image) PS:这里采集的主要是国内最新新闻数据。先来看一下数据: ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/8f1f9ec2c5de43848b8820742aac441c~tplv-k3u1fbpfcp-zoom-1.image) # 1、网页分析 在开始采集之前先说一下新闻数据来源(新浪网) ``` https://news.sina.com.cn/china/ ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a1fb1fb56c6d4637b2fc9973e4dd6d77~tplv-k3u1fbpfcp-zoom-1.image) ### 下一页分析 我们想要采集多条数据,因此需要找到下一页的规律 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/59f6cf19a1f74aee9f4cc5e810c449c9~tplv-k3u1fbpfcp-zoom-1.image) 点击第二页的时候,发现网页链接没有变化,这里数据是通过异步加载过来,因此查看network,找到了目标异步链接: ``` https://feed.sina.com.cn/api/roll/get?pageid=121&lid=1356&num=20&versionNumber=1.2.4&page=2&encode=utf-8&callback=feedCardJsonpCallback&_=1619440444354 ``` 但发现callback=feedCardJsonpCallback&_=1619440444354,可以去掉,因此最终链接如下: ``` https://feed.sina.com.cn/api/roll/get?pageid=121&lid=1356&num=20&versionNumber=1.2.4&page=2&encode=utf-8 ``` 参数page是页数,经过测试page范围在1~125,到126的时候就请求到的是空数据。每一页一共有20条,因此一共是**2500**条新闻数据。 ### json数据结构 ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/fb86edaac3ba4f8ba3f8cfb5c2673c14~tplv-k3u1fbpfcp-zoom-1.image) ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/32e4f09f3b654ae8bf169122b4c1a465~tplv-k3u1fbpfcp-zoom-1.image) 这里咱们学院获取三个字段(标题title、原标题intro、关键词keywords) # 2、采集数据 ### 采集第一页 分析好之后,下面开始使用python编程采集数据。 ``` url="https://feed.sina.com.cn/api/roll/get?pageid=121&lid=1356&num=20&versionNumber=1.2.4&page=1&encode=utf-8" ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1bbb68c97d0d4d5c8a3a7bb4ee63bf7c~tplv-k3u1fbpfcp-zoom-1.image) 这是第一页的数据,已经可以成功采集,只需要改变page值就可以采集下一页数据。接着开始把采集的数据存入到excel中。 ### 保存数据 这里使用openxl库去将数据保存到excel中,先定义表头 ``` outwb = openpyxl.Workbook() ``` 接着写入到excel中 ``` count = 2 ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/70f17c000b2a43779ecac6c54d60ce8e~tplv-k3u1fbpfcp-zoom-1.image) ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/591e017c52c5477fa272ec4f04a11023~tplv-k3u1fbpfcp-zoom-1.image) # 3、词云可视化 这里主要绘制三个词云可视化(用标题、原标题、关键词分布作为数据去画图)。 标题是原标题的精简版,关键词是这篇文章的核心关键词,通过绘制这个三个词云图,然后进行对比分析。 读取数据 ``` datafile = u'新闻数据-李运辰.xls' ``` ### 标题词云可视化 ``` ###标题词云图 ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/350c2af89d2e4ce19c3ed218aea9021d~tplv-k3u1fbpfcp-zoom-1.image) ### 原标题词云可视化 在画词云图之前,先对数据进行处理一下(比如“原标题:”去掉) ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4e3b19d4a26f4378b989a9e6202ff8b1~tplv-k3u1fbpfcp-zoom-1.image) ``` ###原标题词云图 ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ea6c72065ad941919d3c28ca177e331d~tplv-k3u1fbpfcp-zoom-1.image) ### 关键词词云可视化 ``` ###关键词词云图 ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6e8db5dbcce84555b645652527cfbc23~tplv-k3u1fbpfcp-zoom-1.image) **分析:** 三个词云图的时事热点都差不多,核心点在于“新冠肺炎”、“病例”、“北京”,“与外交国家等情况”。具体就不过多的说,通过词云图可以一目了然的了解到当前国内的核心热点关键词。 # 4、小结 为了大家方便学习,辰哥把本文的**完整源码**上传,需要的通过同名公众回复:**新闻** 本文讲解了如何去采集新浪网新闻数据并绘制词云图展示分析。 ### 采集第一页 分析好之后,下面开始使用python编程采集数据。 ``` url="https://feed.sina.com.cn/api/roll/get?pageid=121&lid=1356&num=20&versionNumber=1.2.4&page=1&encode=utf-8" ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1bbb68c97d0d4d5c8a3a7bb4ee63bf7c~tplv-k3u1fbpfcp-zoom-1.image) 这是第一页的数据,已经可以成功采集,只需要改变page值就可以采集下一页数据。接着开始把采集的数据存入到excel中。 ### 保存数据 这里使用openxl库去将数据保存到excel中,先定义表头 ``` outwb = openpyxl.Workbook() ``` 接着写入到excel中 ``` count = 2 ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/70f17c000b2a43779ecac6c54d60ce8e~tplv-k3u1fbpfcp-zoom-1.image) ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/591e017c52c5477fa272ec4f04a11023~tplv-k3u1fbpfcp-zoom-1.image) # 3、词云可视化 这里主要绘制三个词云可视化(用标题、原标题、关键词分布作为数据去画图)。 标题是原标题的精简版,关键词是这篇文章的核心关键词,通过绘制这个三个词云图,然后进行对比分析。 读取数据 ``` datafile = u'新闻数据-李运辰.xls' ``` ### 标题词云可视化 ``` ###标题词云图 ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/350c2af89d2e4ce19c3ed218aea9021d~tplv-k3u1fbpfcp-zoom-1.image) ### 原标题词云可视化 在画词云图之前,先对数据进行处理一下(比如“原标题:”去掉) ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4e3b19d4a26f4378b989a9e6202ff8b1~tplv-k3u1fbpfcp-zoom-1.image) ``` ###原标题词云图 ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ea6c72065ad941919d3c28ca177e331d~tplv-k3u1fbpfcp-zoom-1.image) ### 关键词词云可视化 ``` ###关键词词云图 ``` ![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6e8db5dbcce84555b645652527cfbc23~tplv-k3u1fbpfcp-zoom-1.image) **分析:** 三个词云图的时事热点都差不多,核心点在于“新冠肺炎”、“病例”、“北京”,“与外交国家等情况”。具体就不过多的说,通过词云图可以一目了然的了解到当前国内的核心热点关键词。 # 4、小结 为了大家方便学习,辰哥把本文的**完整源码**上传,需要的通过同名公众回复:**新闻** 本文讲解了如何去采集新浪网新闻数据并绘制词云图展示分析。
上一篇:尽量少用破解版的软件


下一篇:高度塌陷问题及解决方法