14亿,牛逼!我也捐了一点点。。Python捐款统计~
大家好,我是 Jack。
相信各位,在朋友圈或者各个平台,都看到了河南郑州暴雨的消息,水灾严重,河北、成都等各地,也陆续出现了暴雨。

郑州的暴雨,严重程度远超出我们的想象,现场视频和图片,更是触目惊心。
网上流传着一段对话,受困者与朋友的聊天记录。

洪水慢慢没过脖子,封闭车厢的空气逐渐稀薄,那一句「你以后一定要幸福」得有多绝望。
好在,最后的最后,救援队赶到,受困人员被陆续救出。
一方有难、八方支援。
我虽然不能现场参与救援,但也在尽自己的微薄力量。

现在,各大公司、明星,都在捐款,我想看看我们团结的力量,有多强!我粗略的对捐款金额进行了统计。
微博有用户一直在更新公布的捐款信息,因此我利用他发布的微博,成功爬取到了各大公司、明星的捐款。
下载微博数据的代码很长,2000来行,这里就不贴出来了,有需要的,可以在「公众号:jackcui-ai」后台回复:10,获取代码和数据。

然后,利用这些数据,就可以简单地做一个统计。
# -coding-:utf-8 -*-
import os
import re
with open("all.log", "r", encoding="utf-8") as f:
logs = f.readlines()
logs = list(map(lambda x:x.strip(), logs))
sponsors = []
for log in logs:
if '捐款' in log or '捐赠' in log:
info = log.split(",")[-1]
print(info)
name = info.split("宣布")[0]
if len(name) == len(info):
name = info.split("捐款")[0]
if len(name) == len(info):
name = info.split("捐赠")[0]
name = name.replace("向河南", "")
money = re.findall("\d+\.?\d+.[万亿元]", info)
# print("%s:%s" % (name, money[0]))
if len(money) != 0:
sponsors.append([name, money[0]])
# print(sponsors)
for idx, sponsor in enumerate(sponsors):
name = sponsor[0]
money = sponsor[1]
num = float(re.findall("\d+\.?\d+", money)[0])
if '万' in money:
num *= 10000
elif '亿' in money:
num *= 100000000
sponsors[idx][1] = num
# 额外补充
sponsors.append(['腾讯', 100000000.0])
sponsors = sorted(sponsors, key=lambda x:x[-1], reverse=True)
sum_money = 0.0
for idx, sponsor in enumerate(sponsors):
sum_money += sponsor[1]
print("共计捐款:%.3f亿元" % (sum_money/100000000.0))
print("*"* 50)
print("捐款清单:")
for idx, sponsor in enumerate(sponsors):
name = sponsor[0]
money = sponsor[1] / 10000.0
print("%s:%d万元" % (name, int(money)))
print("*"* 50)
根据下载的数据日志,清洗出捐款名和捐款额,为节省时间,这里粗暴的利用了一些规则和正则,更合理的应该用 NLP 工具。
截止到写稿子的时间,各大公司、明星,捐款金额已经达到了 14 亿多。
共计捐款:14.834亿元
捐款清单:
阿里:15000万元
腾讯:10000万元
滴滴:10000万元
牧原股份:10000万元
百度:9000万元
鸿星尔克:5000万元
网易:5000万元
vivo:5000万元
安踏:5000万元
联想集团:5000万元
万科:5000万元
快手:5000万元
OPPO:5000万元
小米:5000万元
奇瑞汽车:3500万元
万达:3000万元
中国移动:2000万元
东方航空:2000万元
恒大集团:2000万元
新浪:2000万元
唯品会:2000万元
比亚迪:2000万元
主播辛巴:2000万元
B站:2000万元
陈向东:2000万元
顺丰:2000万元
周鸿祎:2000万元
360数科:2000万元
小鹏汽车:1500万元
蔚来汽车:1500万元
李宁和非凡中国:1000万元
小红书:1000万元
信也科技:1000万元
陌陌科技:1000万元
理想汽车:1000万元
元气森林:800万元
王思聪:500万元
迅雷:500万元
叮咚买菜:500万元
张庭:500万元
爱尔眼科:500万元
喜茶:500万元
小象大鹅:341万元
五月天:300万元
黄子韬公司:300万元
茶颜悦色:200万元
李易峰:150万元
王力宏:143万元
张萌:120万元
电竞主播PDD:100万元
彭于晏:100万元
何炅:100万元
鹿晗:100万元
贾乃亮:100万元
冯绍峰:100万元
李佳琦:100万元
杨幂:100万元
李云迪:100万元
戚薇李承铉:100万元
李现:100万元
郭麒麟:100万元
贾玲:100万元
佟丽娅:100万元
壹心娱乐:100万元
高晓松:100万元
刘涛:100万元
关晓彤:100万元
张哲瀚:100万元
赵丽颖:100万元
乐华娱乐:100万元
孟美岐:100万元
张雨绮:100万元
岳云鹏:100万元
谢娜:100万元
张杰:100万元
肖战:100万元
时代少年团:100万元
邓超孙俪:100万元
uzi:50万元
鞠婧祎:50万元
GAI:50万元
包贝尔:50万元
JonyJ代表SHOOC全员:50万元
杨洋:50万元
欧阳娜娜:50万元
吉克隽逸:50万元
迪丽热巴:50万元
Angelababy:50万元
李晨:50万元
法老:20万元
TT:20万元
这个名单里,一定还漏掉了很多。
除了这些,还有我们群众的力量,普通老百姓的捐款,也很多。
光支付宝和微信,各个捐款项目的加起来的总金额早已过亿。
比较有意思的一点是,我使用支付宝捐款的时候发现,捐款竟然还能有花呗!
捐款不在多少,量力而行。捐款这方面,大家就别「卷」了。
尽一份对自己生活影响不大的心意就行。
最后:
祝愿,河南早日渡过难关!
祝愿,各位朋友平平安安!