【Python词云图】MU5735事件微博内容文本挖掘舆情分析
一、事件背景
今天一早刷微博,热搜内容令人心痛。昨晚官媒发布消息称,MU5735航班上人员已全部遇难。
一直在关注新闻动态,虽然希望能有奇迹发生,但看到这个公布的结果,还是令人悲痛!
尤其看到其中一条微博评论,瞬间破防了:
愿逝者安息,生者坚强,天堂没有痛苦!
二、爬虫代码
针对网友相关微博内容,开发爬虫代码,核心部分代码:
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') # 评论数量
三、词云图
针对微博文本内容,开发词云图,进而分析内容中的高频词。
关键参数在对应代码后面已注明注释,不再赘述。
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简单自制了一个背景图:
所以,根据背景图绘制出的词云图效果:
身为技术博主,特以此方式缅怀同胞,哀悼!
同类情感分析文章,推荐阅读:
马哥python说:【爬虫+情感判定+Top10高频词+词云图】"谷爱凌"热门弹幕python舆情分析
马哥python说:【爬虫+情感判定+Top10高频词+词云图】"乌克兰"油管热评python舆情分析