日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用paddlepaddle爬取丁香园实时统计数据,并生成疫情地图!!

發(fā)布時(shí)間:2024/1/8 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用paddlepaddle爬取丁香园实时统计数据,并生成疫情地图!! 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

當(dāng)下,新型冠狀病毒感染的肺炎疫情無時(shí)無刻不牽動(dòng)著人們的心。面對(duì)來勢(shì)洶洶的疫情,除了奮戰(zhàn)在前線的醫(yī)護(hù)人員以及防疫建設(shè)工作者們,小媛們也想盡一份綿薄之力。

這不,今天為大家?guī)砹艘环莩唵蔚?#xff01;生成自己的疫情地圖的方法,各位想要?jiǎng)邮值男】蓯劭梢圆倬毱饋砝?#xff01;
01、爬取丁香園實(shí)時(shí)統(tǒng)計(jì)數(shù)據(jù)**

我們要爬取的是丁香園大佬的公開統(tǒng)計(jì)數(shù)據(jù),這才讓我們的疫情地圖生成有了可能。咳咳,數(shù)據(jù)才是王道。

import json import re import requests import datetimetoday = datetime.date.today().strftime('%Y%m%d') #20200315def crawl_dxy_data():"""爬取丁香園實(shí)時(shí)統(tǒng)計(jì)數(shù)據(jù),保存到data目錄下,以當(dāng)前日期作為文件名,存JSON文件"""response = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia') #request.get()用于請(qǐng)求目標(biāo)網(wǎng)站print(response.status_code) # 打印狀態(tài)碼try:url_text = response.content.decode() #更推薦使用response.content.deocde()的方式獲取響應(yīng)的html頁面#print(url_text)url_content = re.search(r'window.getAreaStat = (.*?)}]}catch', #re.search():掃描字符串以查找正則表達(dá)式模式產(chǎn)生匹配項(xiàng)的第一個(gè)位置 ,然后返回相應(yīng)的match對(duì)象。url_text, re.S) #在字符串a(chǎn)中,包含換行符\n,在這種情況下:如果不使用re.S參數(shù),則只在每一行內(nèi)進(jìn)行匹配,如果一行沒有,就換下一行重新開始;#而使用re.S參數(shù)以后,正則表達(dá)式會(huì)將這個(gè)字符串作為一個(gè)整體,在整體中進(jìn)行匹配。texts = url_content.group() #獲取匹配正則表達(dá)式的整體結(jié)果content = texts.replace('window.getAreaStat = ', '').replace('}catch', '') #去除多余的字符json_data = json.loads(content) with open('data/' + today + '.json', 'w', encoding='UTF-8') as f:json.dump(json_data, f, ensure_ascii=False)except:print('<Response [%s]>' % response.status_code)if __name__ == '__main__':crawl_dxy_data()

當(dāng) print(response.status_code) 輸出200即為成功狀態(tài)。
從以上代碼我們可以看到,我們會(huì)生成一個(gè) data/’ + today + '.json 的文件,這樣我們就輕松爬取到今日的疫情數(shù)據(jù)啦:data/20200331.json
02、安裝可視化工具庫

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyecharts

03、繪制疫情餅狀圖

import json import datetime from pyecharts.charts import Pie from pyecharts import options as opts# 讀原始數(shù)據(jù)文件 today = datetime.date.today().strftime('%Y%m%d') #20200331 datafile = 'data/'+ today + '.json' with open(datafile, 'r', encoding='UTF-8') as file:json_array = json.loads(file.read())# 分析全國實(shí)時(shí)確診數(shù)據(jù) china_data = [] for province in json_array:china_data.append((province['provinceShortName'], province['confirmedCount'])) china_data = sorted(china_data, key=lambda x: x[1], reverse=True) #reverse=True,表示降序,反之升序print(china_data)labels = [data[0] for data in china_data] counts = [data[1] for data in china_data]c = (Pie().add("累計(jì)確診", [list(z) for z in zip(labels, counts)]).set_global_opts(title_opts=opts.TitleOpts(title="3月31日疫情分布圖"),legend_opts=opts.LegendOpts(orient="vertical")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")).render("3月31日疫情分布圖.html") )

然后該代碼會(huì)為我們生成一個(gè)文件:3月31日疫情分布圖.html
一個(gè)簡單的今日疫情餅狀圖就生成啦
以上的代碼可以根據(jù)自己的喜好進(jìn)行相應(yīng)更改哦
04、繪制疫情地圖

import json import datetime from pyecharts.charts import Map from pyecharts import options as opts# 讀原始數(shù)據(jù)文件 today = datetime.date.today().strftime('%Y%m%d') #20200315 datafile = 'data/'+ today + '.json' with open(datafile, 'r', encoding='UTF-8') as file:json_array = json.loads(file.read())# 分析全國實(shí)時(shí)確診數(shù)據(jù):'confirmedCount'字段 china_data = [] for province in json_array:china_data.append((province['provinceShortName'], province['confirmedCount'])) china_data = sorted(china_data, key=lambda x: x[1], reverse=True) #reverse=True,表示降序,反之升序print(china_data) # 全國疫情地圖 # 自定義的每一段的范圍,以及每一段的特別的樣式。 pieces = [{'min': 10000, 'color': '#540d0d'},{'max': 9999, 'min': 1000, 'color': '#9c1414'},{'max': 999, 'min': 500, 'color': '#d92727'},{'max': 499, 'min': 100, 'color': '#ed3232'},{'max': 99, 'min': 10, 'color': '#f27777'},{'max': 9, 'min': 1, 'color': '#f7adad'},{'max': 0, 'color': '#f7e4e4'}, ] labels = [data[0] for data in china_data] counts = [data[1] for data in china_data]m = Map() m.add("累計(jì)確診", [list(z) for z in zip(labels, counts)], 'china')#系列配置項(xiàng),可配置圖元樣式、文字樣式、標(biāo)簽樣式、點(diǎn)線樣式等 m.set_series_opts(label_opts=opts.LabelOpts(font_size=12),is_show=False) #全局配置項(xiàng),可配置標(biāo)題、動(dòng)畫、坐標(biāo)軸、圖例等 m.set_global_opts(title_opts=opts.TitleOpts(title='全國實(shí)時(shí)確診數(shù)據(jù)',subtitle='數(shù)據(jù)來源:丁香園'),legend_opts=opts.LegendOpts(is_show=False),visualmap_opts=opts.VisualMapOpts(pieces=pieces,is_piecewise=True, #是否為分段型is_show=True)) #是否顯示視覺映射配置 #render()會(huì)生成本地 HTML 文件,默認(rèn)會(huì)在當(dāng)前目錄生成 render.html 文件,也可以傳入路徑參數(shù),如 m.render("mycharts.html") m.render(path='全國實(shí)時(shí)確診數(shù)據(jù).html')

怎么樣
今天的內(nèi)容
是不是
超令人激動(dòng)
快來領(lǐng)取你自己的疫情地圖吧!

總結(jié)

以上是生活随笔為你收集整理的利用paddlepaddle爬取丁香园实时统计数据,并生成疫情地图!!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。