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ù)了,導入庫
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ù),別忘了在前面導入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文檔鏈接在這里——按照文檔里把庫導入

地圖的代碼如下

但是我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)容,感謝大家的學習和支持。
- 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字符串操作strip()和split()方法詳解
這篇文章主要介紹了Python中的strip()和split()方法,講解了它們的使用場景和典型用法,并展示了一些示例代碼,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2025-03-03
一文帶你掌握Python中enumerate函數(shù)和for循環(huán)的對比
在Python編程中,循環(huán)是一項常見的任務(wù),而for循環(huán)是最常見的一種,然而,Python提供了enumerate函數(shù),它允許在迭代過程中訪問元素的同時獲得它們的索引,下面我們就來學習一下二者的區(qū)別吧2023-11-11
Python實現(xiàn)將數(shù)據(jù)庫一鍵導出為Excel表格的實例
下面小編就為大家?guī)硪黄狿ython實現(xiàn)將數(shù)據(jù)庫一鍵導出為Excel表格的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12
Python 的第三方調(diào)試庫 ???pysnooper?? 使用示例
這篇文章主要介紹了Python 的第三方調(diào)試庫 ???pysnooper?? 使用示例的相關(guān)資料,需要的朋友可以參考下2023-02-02

