Python寫出新冠狀病毒確診人數(shù)地圖的方法
最近肺炎的發(fā)展速度屬實有點恐怖。剛知道python的pyecharts這個庫,想到pyecharts可視化的特點,正好可以扒一下肺炎實時播報的官網(wǎng)也做個地圖。
第一步扒取數(shù)據(jù):發(fā)現(xiàn)一個大問題,各省的確診人數(shù)網(wǎng)頁源代碼里竟然沒有。百度才知道這是js渲染生產(chǎn)的,又是一頓查。找到一種方法。用selenium執(zhí)行一遍網(wǎng)頁渲染的過程就可以了,首先安裝selenium。
pip install selenium
在引用庫的時候還需要webdriver這個啟動瀏覽器的東西,我用的是google,所以要下載chromedriver。先查找自己chrome的版本
然后找到chromedriver的對應(yīng)版本,下載
下載之后把exe文件解壓到編代碼的文件夾里就可以使用了?,F(xiàn)在可以爬數(shù)據(jù)了,導(dǎo)入庫
from selenium import webdriver
然后驅(qū)動瀏覽器,并訪問網(wǎng)址
driver = webdriver.Chrome() driver.get('https://news.163.com/special/epidemic/#map_block')
這里記住得設(shè)置一個等待,要不然爬取數(shù)據(jù)的時候可能程序運行完了網(wǎng)頁還沒打開
driver.implicitly_wait(5)
這時就可以獲取數(shù)據(jù)了
data = driver.page_source
還是得用正則表達式篩選一下想要的數(shù)據(jù),別忘了在前面導(dǎo)入import re
name = re.findall(r'<span class="item_name">(.*?)</span>',data,re.S)[1:32] value = re.findall(r'span class="item_confirm">(.*?)</span>',data,re.S)[1:32]
爬取成功
已經(jīng)爬取到數(shù)據(jù)了,接下來就是可視化的部分了,用到pyecharts的Map塊。
pyecharts文檔鏈接在這里——按照文檔里把庫導(dǎo)入
地圖的代碼如下
但是我Faker這個下不下來,后來查了一下用了這個大佬的方法:地址
整體代碼如下:
from pyecharts.charts import Map from pyecharts import options as opts import re from selenium import webdriver driver = webdriver.Chrome() driver.get('https://news.163.com/special/epidemic/#map_block') driver.implicitly_wait(5) #data = driver.find_element_by_xpath('/html/body/div[3]/div[2]/div[2]/ul[1]/li[1]/div/span[1]').text#.get_attribute('href') data = driver.page_source attr = re.findall(r'<span class="item_name">(.*?)</span>',data,re.S)[1:32] value = re.findall(r'span class="item_confirm">(.*?)</span>',data,re.S)[1:32] sequence = list(zip(attr, value)) def map_visualmap(sequence, year) -> Map: c = ( Map() .add(year, sequence, "china", ) .set_global_opts( title_opts=opts.TitleOpts(title="新冠裝狀病毒各省確診人數(shù)"), visualmap_opts=opts.VisualMapOpts(max_=130, min_=95), ) ) return c map = map_visualmap(sequence, '新冠病毒感染情況') map.render(path='2020.html')
看一下成果吧!
以上就是腳本之家小編整理的全部內(nèi)容,感謝大家的學(xué)習(xí)和支持。
- python+selenium定時爬取丁香園的新型冠狀病毒數(shù)據(jù)并制作出類似的地圖(部署到云服務(wù)器)
- node爬取新型冠狀病毒的疫情實時動態(tài)
- 將新型冠狀病毒轉(zhuǎn)二進制的代碼(首發(fā))
- Python抓新型冠狀病毒肺炎疫情數(shù)據(jù)并繪制全國疫情分布的代碼實例
- Python實現(xiàn)新型冠狀病毒傳播模型及預(yù)測代碼實例
- PHP實現(xiàn)新型冠狀病毒疫情實時圖的實例
- Python實現(xiàn)實時數(shù)據(jù)采集新型冠狀病毒數(shù)據(jù)實例
- python模擬預(yù)測一下新型冠狀病毒肺炎的數(shù)據(jù)
- 使用Python制作新型冠狀病毒實時疫情圖
相關(guān)文章
Python編程實現(xiàn)的簡單神經(jīng)網(wǎng)絡(luò)算法示例
這篇文章主要介紹了Python編程實現(xiàn)的簡單神經(jīng)網(wǎng)絡(luò)算法,結(jié)合實例形式分析了神經(jīng)網(wǎng)絡(luò)算法的原理及Python相關(guān)算法實現(xiàn)技巧,需要的朋友可以參考下2018-01-01Windows環(huán)境中Python應(yīng)用服務(wù)自啟動及其監(jiān)控問題
這篇文章主要介紹了Windows環(huán)境中Python應(yīng)用服務(wù)自啟動及其監(jiān)控問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06Python實現(xiàn)破解網(wǎng)站登錄密碼(帶token驗證)
這篇文章主要為大家介紹一個Python暴力破解網(wǎng)站登錄密碼腳本(帶token驗證),文中的過程講解詳細,對我們學(xué)習(xí)Python有一定的幫助,感興趣的可以學(xué)習(xí)一下2022-02-02Python?JSON數(shù)據(jù)解析過程(最新推薦)
json模塊提供了將JSON格式的數(shù)據(jù)轉(zhuǎn)換為Python對象(如列表、字典等)以及將Python對象轉(zhuǎn)換為JSON格式的數(shù)據(jù)的方法,下面給大家分享使用json模塊解析JSON數(shù)據(jù)的常見方法,感興趣的朋友一起看看吧2024-02-02一文帶你了解CNN(卷積神經(jīng)網(wǎng)絡(luò))
CNN是神經(jīng)網(wǎng)絡(luò)中的一種,它的權(quán)值共享網(wǎng)絡(luò)結(jié)構(gòu)使之更類似于生物神經(jīng)網(wǎng)絡(luò),降低了網(wǎng)絡(luò)模型的復(fù)雜度,減少了權(quán)值的數(shù)量。本文主要講解了CNN(卷積神經(jīng)網(wǎng)絡(luò))的基礎(chǔ)內(nèi)容,想了解更多的小伙伴可以看一看這篇文章2021-09-09