#數據獲取python
最近你們天天都窩在家裏關注疫情數據,那麼問題來了,怎麼用python抓取疫情數據畫疫情曲線和地圖呢?git
首先咱們先選一個數據源,以騰訊的實時數據爲例。 news.qq.com/zt2020/page…github
經過分析咱們就獲得了URL地址、請求方法、參數、應答格式等信息,有了這些信息分分鐘就能夠獲取數據了。json
抓取每日確診、疑似、死亡、治癒數據,代碼以下:工具
url = 'https://view.inews.qq.com/g2/getOnsInfo?name=wuwei_ww_cn_day_counts&callback=&_=%d'%int(time.time()*1000)
data = json.loads(requests.get(url=url).json()['data'])
複製代碼
抓取各省累計確診數據,代碼以下:url
num={}
url='https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5&callback=&_=%d'%int(time.time()*1000)
url_data=json.loads(requests.get(url=url).json()['data'])
for item in url_data['areaTree'][0]['children']:
num.update({item['name'] : item['total']['confirm']})
複製代碼
#數據展現spa
獲取到每日確診、疑似、死亡、治癒數據後,使用Matplotlib模塊直接畫疫情曲線。code
plt.subplot(211)
plt.title('2019-nCoV confirm and suspect', fontsize=20)
plt.plot(date_list, confirm_list, label='confirm')
plt.plot(date_list, suspect_list, label='suspect')
plt.subplot(212)
plt.title('2019-nCoV Curve dead and heal', fontsize=20)
plt.plot(date_list, dead_list, label='dead')
plt.plot(date_list, heal_list, label='heal')
複製代碼
而畫地圖稍微複雜一些,須要Basemap工具包,和處理地圖投影的Pyproj模塊,所需模塊請自行安裝。cdn
畫海陸分界線、國界線、行政分界線須要Shape數據,繪圖用到的矢量字庫simsun.tff以及源代碼等能夠到這裏下載(github.com/benjamingth…),以爲有用的話請給個Star,謝謝!htm
2019新冠肺炎疫情曲線