14億,牛逼!我也捐了一點(diǎn)點(diǎn)。。Python捐款統(tǒng)計(jì)~
大家好,我是 Jack。
相信各位,在朋友圈或者各個(gè)平臺(tái),都看到了河南鄭州暴雨的消息,水災(zāi)嚴(yán)重,河北、成都等各地,也陸續(xù)出現(xiàn)了暴雨。

鄭州的暴雨,嚴(yán)重程度遠(yuǎn)超出我們的想象,現(xiàn)場(chǎng)視頻和圖片,更是觸目驚心。
網(wǎng)上流傳著一段對(duì)話,受困者與朋友的聊天記錄。

洪水慢慢沒過脖子,封閉車廂的空氣逐漸稀薄,那一句「你以后一定要幸福」得有多絕望。
好在,最后的最后,救援隊(duì)趕到,受困人員被陸續(xù)救出。
一方有難、八方支援。
我雖然不能現(xiàn)場(chǎng)參與救援,但也在盡自己的微薄力量。

現(xiàn)在,各大公司、明星,都在捐款,我想看看我們團(tuán)結(jié)的力量,有多強(qiáng)!我粗略的對(duì)捐款金額進(jìn)行了統(tǒng)計(jì)。
微博有用戶一直在更新公布的捐款信息,因此我利用他發(fā)布的微博,成功爬取到了各大公司、明星的捐款。
下載微博數(shù)據(jù)的代碼很長(zhǎng),2000來(lái)行,這里就不貼出來(lái)了,有需要的,可以在「公眾號(hào):jackcui-ai」后臺(tái)回復(fù):10,獲取代碼和數(shù)據(jù)。

然后,利用這些數(shù)據(jù),就可以簡(jiǎn)單地做一個(gè)統(tǒng)計(jì)。
# -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 '捐贈(zèng)' 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("捐贈(zèng)")[0]
????????name = name.replace("向河南", "")
????????money = re.findall("\d+\.?\d+.[萬(wàn)億元]", 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 '萬(wàn)' in money:
????????num *= 10000
????elif '億' in money:
????????num *= 100000000
????sponsors[idx][1] = num
?
# 額外補(bǔ)充
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("共計(jì)捐款:%.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萬(wàn)元" % (name, int(money)))
print("*"* 50)
根據(jù)下載的數(shù)據(jù)日志,清洗出捐款名和捐款額,為節(jié)省時(shí)間,這里粗暴的利用了一些規(guī)則和正則,更合理的應(yīng)該用 NLP 工具。
截止到寫稿子的時(shí)間,各大公司、明星,捐款金額已經(jīng)達(dá)到了 14 億多。
共計(jì)捐款:14.834億元
捐款清單:
阿里:15000萬(wàn)元
騰訊:10000萬(wàn)元
滴滴:10000萬(wàn)元
牧原股份:10000萬(wàn)元
百度:9000萬(wàn)元
鴻星爾克:5000萬(wàn)元
網(wǎng)易:5000萬(wàn)元
vivo:5000萬(wàn)元
安踏:5000萬(wàn)元
聯(lián)想集團(tuán):5000萬(wàn)元
萬(wàn)科:5000萬(wàn)元
快手:5000萬(wàn)元
OPPO:5000萬(wàn)元
小米:5000萬(wàn)元
奇瑞汽車:3500萬(wàn)元
萬(wàn)達(dá):3000萬(wàn)元
中國(guó)移動(dòng):2000萬(wàn)元
東方航空:2000萬(wàn)元
恒大集團(tuán):2000萬(wàn)元
新浪:2000萬(wàn)元
唯品會(huì):2000萬(wàn)元
比亞迪:2000萬(wàn)元
主播辛巴:2000萬(wàn)元
B站:2000萬(wàn)元
陳向東:2000萬(wàn)元
順豐:2000萬(wàn)元
周鴻祎:2000萬(wàn)元
360數(shù)科:2000萬(wàn)元
小鵬汽車:1500萬(wàn)元
蔚來(lái)汽車:1500萬(wàn)元
李寧和非凡中國(guó):1000萬(wàn)元
小紅書:1000萬(wàn)元
信也科技:1000萬(wàn)元
陌陌科技:1000萬(wàn)元
理想汽車:1000萬(wàn)元
元?dú)馍?800萬(wàn)元
王思聰:500萬(wàn)元
迅雷:500萬(wàn)元
叮咚買菜:500萬(wàn)元
張庭:500萬(wàn)元
愛爾眼科:500萬(wàn)元
喜茶:500萬(wàn)元
小象大鵝:341萬(wàn)元
五月天:300萬(wàn)元
黃子韜公司:300萬(wàn)元
茶顏悅色:200萬(wàn)元
李易峰:150萬(wàn)元
王力宏:143萬(wàn)元
張萌:120萬(wàn)元
電競(jìng)主播PDD:100萬(wàn)元
彭于晏:100萬(wàn)元
何炅:100萬(wàn)元
鹿晗:100萬(wàn)元
賈乃亮:100萬(wàn)元
馮紹峰:100萬(wàn)元
李佳琦:100萬(wàn)元
楊冪:100萬(wàn)元
李云迪:100萬(wàn)元
戚薇李承鉉:100萬(wàn)元
李現(xiàn):100萬(wàn)元
郭麒麟:100萬(wàn)元
賈玲:100萬(wàn)元
佟麗婭:100萬(wàn)元
壹心娛樂:100萬(wàn)元
高曉松:100萬(wàn)元
劉濤:100萬(wàn)元
關(guān)曉彤:100萬(wàn)元
張哲瀚:100萬(wàn)元
趙麗穎:100萬(wàn)元
樂華娛樂:100萬(wàn)元
孟美岐:100萬(wàn)元
張雨綺:100萬(wàn)元
岳云鵬:100萬(wàn)元
謝娜:100萬(wàn)元
張杰:100萬(wàn)元
肖戰(zhàn):100萬(wàn)元
時(shí)代少年團(tuán):100萬(wàn)元
鄧超孫儷:100萬(wàn)元
uzi:50萬(wàn)元
鞠婧祎:50萬(wàn)元
GAI:50萬(wàn)元
包貝爾:50萬(wàn)元
JonyJ代表SHOOC全員:50萬(wàn)元
楊洋:50萬(wàn)元
歐陽(yáng)娜娜:50萬(wàn)元
吉克雋逸:50萬(wàn)元
迪麗熱巴:50萬(wàn)元
Angelababy:50萬(wàn)元
李晨:50萬(wàn)元
法老:20萬(wàn)元
TT:20萬(wàn)元
這個(gè)名單里,一定還漏掉了很多。
除了這些,還有我們?nèi)罕姷牧α浚胀ɡ习傩盏木杩?,也很多?/p>
光支付寶和微信,各個(gè)捐款項(xiàng)目的加起來(lái)的總金額早已過億。
比較有意思的一點(diǎn)是,我使用支付寶捐款的時(shí)候發(fā)現(xiàn),捐款竟然還能有花唄!
捐款不在多少,量力而行。捐款這方面,大家就別「卷」了。
盡一份對(duì)自己生活影響不大的心意就行。
最后:
祝愿,河南早日渡過難關(guān)!
祝愿,各位朋友平平安安!