小编从新闻上了解到。截至目前,7月全国累计报告新增本土确诊病例328例,接近此前5个月总和。
已有14个省份报告新增本土确诊病例或无症状感染者。
并且这两天“此次疫情会大规模暴发吗”也登上了微博热搜,引起了众多网友们的关注。
我们今天就来使用爬虫来分析一下1.2亿网友们是如何看待此次大规模爆发的疫情的。
目标确定
所以我们今天就把10000个网友的微博评论使用爬虫下载下来,看看大家都说了些什么?
需求分析
我们要获取的数据如有微博评论下的
用户id、用户名称、用户座右铭、发帖时间和发帖内容。
首先我们F12打开浏览器开发者模式:
目标url如下:
https://m.weibo.cn/comments/hotflow?id=4665088419561949&mid=4665088419561949&max_id_type=0
为防止被反爬,我们还需添加headers模拟浏览器发送请求
我们用浏览器打开链接,发现这是一个标准的json格式的数据集,
我们所要的数据都在这个json数据里面
所以第一步,先模拟浏览器获取这个json格式的数据集。
发送请求
请求代码如下:
url ='https://m.weibo.cn/comments/hotflow?id=4665088419561949&mid=4665088419561949&max_id_type=0'
headers = {
'cookie':'SUB=_2A25NyTOqDeRhGeVG7lAZ9S_PwjiIHXVvMl3irDV6PUJbktB-LVDmkW1NT7e8qozwK1pqWVKX_PsKk5dhdCyPXwW1; SUBP=0033WrSXqPxfM725Ws9jqgMF55529P9D9WFGibRIp_iSfMUfmcr5kb295NHD95Q01h-E1h-pe0.XWs4DqcjLi--fi-2Xi-2Ni--fi-z7iKysi--Ri-8si-zXi--fi-88i-zce7tt; _T_WM=98961943286; MLOGIN=1; WEIBOCN_FROM=1110006030; XSRF-TOKEN=70a1e0; M_WEIBOCN_PARAMS=oid%3D4648381753067388%26luicode%3D20000061%26lfid%3D4648381753067388%26uicode%3D20000061%26fid%3D4648381753067388',
'referer':'Referer: https://m.weibo.cn/detail/4665088419561949',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4573.0 Safari/537.36'
}
resp = requests.get(url, headers=headers).json()
print(resp)
结果打印如下:
解析页面
上一步已经成功模拟浏览器获取到了数据。
接下来就是如何在其中提取出我们的目标数据
for item in wb_info:
user_id = item.get('user')['id']# 用户id
author = item['user']['screen_name']# 作者名称
auth_sign = item['user']['description']# 作者座右铭
time = str(item['created_at']).split(' ')[1:4]
rls_time ='-'.join(time)# 发帖时间
text =''.join(re.findall('[\u4e00-\u9fa5]', item['text']))# 发帖内容
print(user_id, author, auth_sign, rls_time, text)
'''
3148844394 南橘北枳绵绵 放屁大师。Jul-31-18:27:18 我觉得如果能及时控制住应该不会
5502454213 女拳就是资本帮凶 (*๓´╰╯`๓)♡ Jul-31-18:27:25 南京当局的锅摊手
5092715365 赴烟 不入流的制作人/Beatmaker Jul-31-18:28:01 烦人的疫情你打乱了多少人接下来的计划
7447341249 郭巨侠0821 我是利物浦太太 刘雨昕是大魔王 Jul-31-18:29:34 最大的特点就是南京不拘一格的防控行为真是让人大开眼界叹为观止
1320464142 CascCaltChen_亮 西瓜大籍,航天民工,3C认证。Jul-31-18:34:21 南京当然不会大爆发毕竟有江苏的财力科技医疗撑着呢也因此他们直到昨天依然我行我素不以为然但南京以一己私利而拖延上报模糊发布信息未及时公开德尔塔变种已经导致全国延误战机南京政府在大局意识全国一盘棋国家总体安全观方面已经严重失职严重渎职严重失责铸成大错
5994723367 柠檬冰霸 关注全球疫情,疫情不散,我们不见…!!!Jul-31-18:28:01 南京领导不出来说说话吗
6334640602 YueU_e /镇魂 Jul-31-18:27:42 南京政府能不能学学广东
2973646350 柚子啊吖啊 想做什么做什么 Jul-31-19:36:54 南京为什么不能骂不是南京的错难道是我的错长沙好好的生活突然被打乱了我每天就想骂了咋了
6507146619 宇宙星辰05 心在一起才是朋友 Jul-31-18:33:45 今天看到新闻郑州卫健委主任被免职因为郑州今天发现本土疫情而江苏省卫健委主任南京市卫健委主任好像没有受到疫情牵连这是为什么呢
1939099823 与速哥同在 Jul-31-18:32:05 疫情就像一面照妖镜看出了各地政府处理突发疫情的能力在当前境外输入疫情防控严峻的情况下关乎老百姓生死的大事上竟然出现这么大漏洞中央应派督察组医疗专家组帮助有疫情的省份尽快核查疫情源头及时控制疫情扩散防止大规模爆发毁了全国来之不易的抗疫成果
1887893173 成成成TC成爷 🎬待映《夏日友晴天》《黑寡妇》《密室逃生2》《丛林奇航》《失控玩家》《尚气》《毒液2》《007:无暇赴死》《永恒族》《蜘蛛侠3:英雄无归》…… Jul-31-18:33:08 但凡南京加强管控也不至于让新冠有可乘之机造成现在这种遍地开花的局面只能亡羊补牢了裂开裂开裂开裂开裂开裂开希望南京领导出来跟全国人民道歉坚信此次疫情可以及时控制住心心心
1644642397 yumei1226 Jul-31-19:04:26 疫情是机场的锅但是要明白防疫过程中各种迷之操作出自南京政府
1841452703 木昜DAISY “长安区杀人微笑”称号终身成就获得者. Jul-31-19:35:24 还会不会难道到去年年初武汉的程度才叫大规模爆发全国各地都发现了多少人的生活工作都受影响了这还不叫爆发
5546301257 橘子伟盫 天秤座完美的诠释 Jul-31-20:00:26 看下这个热搜吧德尔塔毒株或导致更严重疾病希望客观解释下什么是可以通过接种疫苗的人传播并且可能导致更严重疾病不然细思极恐啊允悲
1412442291 我搞的CP都能HE 雞總書粉 Jul-31-18:34:12 南京要负责任
1681792584 _是郭小姐叭· /易燃易爆炸/熱愛可抵歲月漫長🌟 Jul-31-18:44:49 南京為什麼不抄廣東作業我們廣佛深莞當時反應很迅速就一個月前啊允悲
7044639541 百亩森林在逃主人公 你愿意陪伴的话我们慢慢来 Jul-31-18:28:46 最难的时候都过去了现在一定也能过去
1773674637 JunvyLee 转身一个三分波 Jul-31-19:05:40 我想现在南京领导班子看到张家界的局面应该会窃喜成功转移关注度而且自己南京也貌似控制住啦我真的服了这堆领导
2966832950 XXXTENTAC10N ,, Jul-31-19:28:50 不好说之前普通型就把武汉折磨够呛这次是更厉害的德尔塔很多人有点麻木了都不戴口罩了很难说有可能还会有过之还无不及
6735986866 Real-XIAOYU 做一个小有名气儿的打工仔儿 Jul-31-18:28:12 感觉他们都好不重视啊
'''
数据成功获取!
因为我们要获取的数据不止一页,所以咱们来接着分析翻页。就从每一页的url开始。
https://m.weibo.cn/comments/hotflow?id=4665088419561949&mid=4665088419561949&max_id_type=0
https://m.weibo.cn/comments/hotflow?id=4665088419561949&mid=4665088419561949&max_id=323846159351000&max_id_type=0
https://m.weibo.cn/comments/hotflow?id=4665088419561949&mid=4665088419561949&max_id=159331733201157&max_id_type=0
https://m.weibo.cn/comments/hotflow?id=4665088419561949&mid=4665088419561949&max_id=144625766715290&max_id_type=0
从第二页开始,每个连接的后面都多了一个叫做max_id的参数。
并且这个max_id是跟随页数随机变化的。
那现在问题就变成了如何获取max_id
通过第一页的链接获取到了第二页的max_id,
然后通过第二页的链接获取到第三页max_id
以此类推,获取到全部数据......
之后接着把内容使用openpyxl保存到Excel文件中,如下图所示。
ws = op.Workbook()
wb = ws.create_sheet(index=0)
wb.cell(row=1, column=1, value='用户id')
wb.cell(row=1, column=2, value='作者名称')
wb.cell(row=1, column=3, value='作者座右铭')
wb.cell(row=1, column=4, value='发帖时间')
wb.cell(row=1, column=5, value='发帖内容')
count =2
wb.cell(row=count, column=1, value=user_id)
wb.cell(row=count, column=2, value=author)
wb.cell(row=count, column=3, value=auth_sign)
wb.cell(row=count, column=4, value=rls_time)
wb.cell(row=count, column=5, value=text)
ws.save('微博疫情.xlsx')
先来测试50页数据,总共获取到800+测试数据
词云展示
rcv_data = pd.read_excel('./微博疫情.xlsx')
exist_col = rcv_data.dropna()# 删除空行
c_title = exist_col['发帖内容'].tolist()
# 观影评论词云图
wordlist = jieba.cut(''.join(c_title))
print('wordlist:', wordlist)
result =' '.join(wordlist)
print('result:', result)
pic ='img1.jpg'
gen_stylecloud(text=result,
icon_name='fas fa-comment-dots',
font_path='msyh.ttc',
background_color='white',
output_name=pic,
custom_stopwords=['你','我','的','了','在','吧','相信','是','也','都','不','吗','就','我们','还','大家','你们','就是','以后']
)
print('绘图成功!')
新型冠状病毒爆发(outbreak),如今已被世界卫生组织列为国际关注的突发公共卫生事件。
在这样的情况下,我们应该从自身做起,预防这次新型肺炎。
wear mask outdoors
出门戴口罩
wash hands frequently and properly
勤洗手和正确洗手
cover coughs and sneezes with tissue
咳嗽和打喷嚏时用纸巾遮住口鼻
strengthen your immune system
加强免疫系统
avoid touching eyes, nose, and mouth with unwashedhands
避免用手触摸眼睛、鼻子和嘴巴
avoid close contact with people who are sick
避免和患者亲密接触
clean and disinfect frequently touched objects and surfaces
对经常触摸的物体和表面清洁并消毒
做好以上七点,安心宅在家中为社会做贡献,希望大家在永远都能平平安安!