用Python對(duì)微博熱搜做輿情分析
大家好,我是志斌~
今天志斌看微博熱搜的時(shí)候,發(fā)現(xiàn)這樣一條熱搜。
我尋思,這要真的改了,真的炸鍋!所以志斌爬取了這條微博下的數(shù)據(jù),進(jìn)行了一個(gè)簡(jiǎn)單的輿情分析!
需要源碼的同學(xué),加志斌微信獲取哈~
一、數(shù)據(jù)采集
志斌在之前的兩篇文章中,詳細(xì)的介紹了如何獲取微博評(píng)論,有興趣的讀者可以看看這兩篇文章。這里志斌直接展示核心代碼了,代碼如下:
- 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}頁(yè)數(shù)據(jù)......')
- time.sleep(random.randint(1,3))
二、可視化分析
我們來(lái)對(duì)這些數(shù)據(jù)進(jìn)行可視化分析。本次繪圖使用的是Excel和Tableau兩款軟件。
1.點(diǎn)贊數(shù)top10用戶
我們發(fā)現(xiàn)橢圓圓子這個(gè)用戶所發(fā)表的評(píng)論點(diǎn)贊數(shù)最多,有9.5w+,下面讓我們看看它的評(píng)論是什么,竟然讓用戶這么喜歡。
這是一句純吐槽的話,點(diǎn)贊數(shù)這么多,可能是因?yàn)榘l(fā)的時(shí)間早,或者是引起了老師們的共鳴。
2.評(píng)論日期分布
從圖中我們可以清晰的看出,7.6號(hào)發(fā)表評(píng)論的人數(shù)最多,可能跟今天上熱搜有關(guān)系的原因,畢竟上了熱搜,曝光度就高了!
3.評(píng)論時(shí)間分布
對(duì)6號(hào)評(píng)論發(fā)布時(shí)間進(jìn)行分析,我們發(fā)現(xiàn)19點(diǎn)發(fā)表的評(píng)論數(shù)量最多,我當(dāng)時(shí)看到這條熱搜的時(shí)候,基本也是這個(gè)時(shí)間,看來(lái)熱搜對(duì)一個(gè)消息的影響還是很大的。
4.詞云圖
通過(guò)詞云圖可以看出,人們圍繞這寒暑假這個(gè)詞討論的非常熱烈,學(xué)生和取消、行業(yè)等詞也被大量提及,我翻了翻評(píng)論,發(fā)現(xiàn)大部分人都是不想取消的。當(dāng)然志斌也覺(jué)得不要取消。
三、小結(jié)
1. 通過(guò)分析我們可以看出,熱搜對(duì)每條微博的影響是巨大的。
2. 大家都不太愿意取消寒暑假。
3. 本文僅供學(xué)習(xí)參考,不做它用。