首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Python词云图】MU5735事件微博内容文本挖掘舆情分析

【Python词云图】MU5735事件微博内容文本挖掘舆情分析

作者头像
用户5690870
发布2025-07-14 20:20:26
发布2025-07-14 20:20:26
10400
代码可运行
举报
文章被收录于专栏:Python可视化Python可视化
运行总次数:0
代码可运行

一、事件背景

今天一早刷微博,热搜内容令人心痛。昨晚官媒发布消息称,MU5735航班上人员已全部遇难。

一直在关注新闻动态,虽然希望能有奇迹发生,但看到这个公布的结果,还是令人悲痛!

尤其看到其中一条微博评论,瞬间破防了:

愿逝者安息,生者坚强,天堂没有痛苦!🙏🏻

二、爬虫代码

针对网友相关微博内容,开发爬虫代码,核心部分代码:

代码语言:javascript
代码运行次数:0
运行
复制
url = 'https://m.weibo.cn/api/container/getIndex'  # 请求地址
params = {
  "containerid": "100103type=1&q={}".format(v_keyword),  # 关键字
  "page_type": "searchall",
  "page": page  # 页码
}
r = requests.get(url, headers=headers, params=params)
print(r.status_code)  # 响应码
cards = r.json()["data"]["cards"]
text_list = jsonpath.jsonpath(cards, '$..mblog.text')
dr = re.compile(r'<[^>]+>', re.S)
text2_list = []
if type(text_list) == list:
  for text in text_list:
    text2 = dr.sub('', text)
    print(text2)
    text2_list.append(text2)
time_list = jsonpath.jsonpath(cards, '$..mblog.created_at')  # 发布时间
author_list = jsonpath.jsonpath(cards, '$..mblog.user.screen_name')  # 发布作者
pprint(author_list)
id_list = jsonpath.jsonpath(cards, '$..mblog.id')  # 微博id
bid_list = jsonpath.jsonpath(cards, '$..mblog.bid')  # 微博bid
pprint(id_list)
comments_count_list = jsonpath.jsonpath(cards, '$..mblog.comments_count')  # 评论数量

三、词云图

针对微博文本内容,开发词云图,进而分析内容中的高频词。

关键参数在对应代码后面已注明注释,不再赘述。

代码语言:javascript
代码运行次数:0
运行
复制
def make_wordcloud(v_str, v_stopwords, v_outfile):
  """
  绘制词云图
  :param v_str: 输入字符串
  :param v_stopwords: 停用词
  :param v_outfile: 输出文件
  :return: None
  """
  try:
    jieba_text = " ".join(jieba.lcut(v_str))  # 结巴分词
    print('jieba_text is:')
    print(jieba_text)
    stopwords = v_stopwords  # 停用词
    backgroud_Image = np.array(Image.open('幻灯片2.png'))  # 读取背景图片
    wc = WordCloud(
      scale=4,  # 清晰度
      background_color="black",  # 背景颜色
      max_words=1800,
      width=1500,  # 图宽
      height=1200,  # 图高
      font_path='/System/Library/Fonts/SimHei.ttf',  # 字体文件路径,根据实际情况替换
      stopwords=stopwords,  # 停用词
      mask=backgroud_Image,  # 背景图片
    )
    jieba_text = " ".join(jieba.lcut(v_str))  # jieba分词
    wc.generate_from_text(jieba_text)  # 生成词云图
    wc.to_file(v_outfile)  # 保存图片文件
    print('词云文件保存成功:{}'.format(v_outfile))
  except Exception as e:
    print('make_wordcloud except: {}'.format(str(e)))

四、效果展示

因为我用PPT简单自制了一个背景图:

图片
图片

所以,根据背景图绘制出的词云图效果:

身为技术博主,特以此方式缅怀同胞,哀悼!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老男孩的平凡之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、事件背景
  • 二、爬虫代码
  • 三、词云图
  • 四、效果展示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档