日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

python采集最新疫情數(shù)據(jù) 數(shù)據(jù)分析可視化地圖(贈送源碼)

 禁忌石 2022-05-20 發(fā)布于浙江

一、前言

嗨嘍,大家好呀,這里是魔王~

疫情降臨轉(zhuǎn)眼已經(jīng)第三年了,時間過得真快,愿疫情早點結(jié)束,世界不再多災(zāi)多難。

最近疫情稍微好轉(zhuǎn)一些了,所以咱們獲取一下最新的疫情數(shù)據(jù),做個可視化地圖看看。

話不多說,我們直接先來一波效果展示

二、效果

獲取到的數(shù)據(jù)咱們保存到表格

文章圖片1

可視化地圖

顏色是跟網(wǎng)上的一樣,可以跟隨鼠標(biāo)移動變色,展示數(shù)據(jù)的。

文章圖片2

還可以實現(xiàn)這種更好看的

文章圖片3

柱狀圖

文章圖片4

效果看過了,現(xiàn)在我們來準(zhǔn)備實現(xiàn)它叭~

三、準(zhǔn)備工作

涉及知識點

  • 爬蟲基本流程
  • requests 發(fā)送請求
  • re 正則表達(dá)式
  • json 結(jié)構(gòu)化數(shù)據(jù)解析
  • pyecharts 可視化

開發(fā)環(huán)境

  • python 3.8: 解釋器
  • pycharm: 代碼編輯器

實現(xiàn)流程

  1. 發(fā)送請求
  2. 獲取數(shù)據(jù)
  3. 解析數(shù)據(jù)
  4. 保存數(shù)據(jù)
  5. 可視化分析

前四步的話,基本大部分*蟲都是如此。

四、代碼展示

又到了緊張刺激的環(huán)節(jié)了,嘿嘿~

獲取數(shù)據(jù)部分

import requests # 發(fā)送請求 第三方模塊 額外安裝吧import re # 內(nèi)置模塊 無需安裝import jsonimport csv# 偽裝 字典headers = { # 瀏覽器基本信息 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36'}with open('data.csv', mode='a', encoding='utf-8', newline='') as f: csv_writer = csv.writer(f) csv_writer.writerow(['area', 'curConfirm', 'curConfirmRelative', 'confirmed', 'crued', 'died'])url = 'https://voice.這里加上我國網(wǎng)民最常用的那個網(wǎng)站地址/act/newpneumonia/newpneumonia/?from=osari_aladin_banner'# 1. 發(fā)送請求# x=1,y=2response = requests.get(url=url, headers=headers)# 2. 獲取數(shù)據(jù)# <Response [200]>: 訪問成功html_data = response.text# print(html_data)# 3. 解析數(shù)據(jù) 正則# a. 告訴他 我們要怎么查找 'component':\[(.*?)\]# b. 我們在哪里查找源碼、解答、資料、教程可加:261823976免費獲取~# 正則會把所有能匹配到的數(shù)據(jù)都會給到我們# (.*?)# .*匹配任意字符 0次或者多次# ? 非貪婪匹配符json_str = re.findall(''component':\[(.*)\],', html_data)[0]# 類型 轉(zhuǎn)化一下 字典json_dict = json.loads(json_str)caseList = json_dict['caseList']for case in caseList: area = case['area'] # 省份 curConfirm = case['curConfirm'] # 確診人數(shù) curConfirmRelative = case['curConfirmRelative'] # 當(dāng)前確診 confirmed = case['confirmed'] # 累計確診 crued = case['crued'] # 治愈人數(shù) died = case['died'] # 死亡人數(shù) print(area, curConfirm, curConfirmRelative, confirmed, crued, died) with open('data.csv', mode='a', encoding='utf-8', newline='') as f: csv_writer = csv.writer(f) csv_writer.writerow([area, curConfirm, curConfirmRelative, confirmed, crued, died])

可視化部分

import pandas as pdfrom pyecharts.charts import Mapfrom pyecharts import options as optsdf = pd.read_csv('data.csv', encoding='utf-8')china_map = (    Map()    .add('現(xiàn)有確診', [list(i) for i in zip(df['area'].values.tolist(), df['curConfirm'].values.tolist())], 'china')    .set_global_opts(        title_opts=opts.TitleOpts(title='各地區(qū)確診人數(shù)'),        visualmap_opts=opts.VisualMapOpts(max_=200, is_inverse=True)    ))china_map.render('demo.html')

這里只有第一種可視化效果,其它的都是ipynb 格式的,我懶得打開了~

尾語

成功沒有快車道,幸福沒有高速路。

所有的成功,都來自不倦地努力和奔跑,所有的幸福都來自平凡的奮斗和堅持

——勵志語錄

本文章就寫完啦~感興趣的小伙伴可以復(fù)制代碼去試試

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多