用Python对微博热搜做舆情分析

发表于:2021-7-08 09:44

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:志斌    来源:志斌的python笔记

  今天志斌看微博热搜的时候,发现这样一条热搜。
  我寻思,这要真的改了,真的炸锅!所以志斌爬取了这条微博下的数据,进行了一个简单的舆情分析!
  需要源码的同学,加志斌微信获取哈~
  一、数据采集
  志斌在之前的两篇文章中,详细的介绍了如何获取微博评论,有兴趣的读者可以看看这两篇文章。这里志斌直接展示核心代码了,代码如下:
  for page in range(1,10000): 
    if page == 1 : 
        params = ( 
            ('id', '4654152979845247'), 
            ('mid', '4654152979845247'), 
            ('max_id_type', '0'), 
        ) 
    #s = requests.Session() 
    response = requests.get('https://m.weibo.cn/comments/hotflow', headers=headers, params=params) 
    a = response.json()['data']['max_id'] 
    b = response.json()['data']['max_id_type'] 
   
    for i in response.json()['data']['data']: 
        pinglunshijian = i['created_at'] 
        neirong = re.sub(r'<[^>]*>', '', i['text']) 
        id = i['user']['id'] 
        yonghumingcheng = i['user']['screen_name'] 
        with open(r'71.txt', 'a', encoding='utf-8') as f: 
            f.write(f'{neirong}\n') 
    params = ( 
        ('id', '4654152979845247'), 
        ('mid', '4654152979845247'), 
        ('max_id', str(a)), 
        ('max_id_type', str(b)), 
         ) 
    print(f'爬取第{page}页数据......') 
    time.sleep(random.randint(1,3)) 
  二、可视化分析
  我们来对这些数据进行可视化分析。本次绘图使用的是Excel和Tableau两款软件。
  1.点赞数top10用户
  我们发现椭圆圆子这个用户所发表的评论点赞数最多,有9.5w+,下面让我们看看它的评论是什么,竟然让用户这么喜欢。
  这是一句纯吐槽的话,点赞数这么多,可能是因为发的时间早,或者是引起了老师们的共鸣。
  2.评论日期分布
  从图中我们可以清晰的看出,7.6号发表评论的人数最多,可能跟今天上热搜有关系的原因,毕竟上了热搜,曝光度就高了!
  3.评论时间分布
  对6号评论发布时间进行分析,我们发现19点发表的评论数量最多,我当时看到这条热搜的时候,基本也是这个时间,看来热搜对一个消息的影响还是很大的。
  4.词云图
  通过词云图可以看出,人们围绕这寒暑假这个词讨论的非常热烈,学生和取消、行业等词也被大量提及,我翻了翻评论,发现大部分人都是不想取消的。当然志斌也觉得不要取消。
  三、小结
  1. 通过分析我们可以看出,热搜对每条微博的影响是巨大的。
  2. 大家都不太愿意取消寒暑假。
  3. 本文仅供学习参考,不做它用。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号