python通過爬蟲獲得全國新冠狀病情情況

2021-10-10 06:16:15 字數 4360 閱讀 4823

疫情期間寫個乙個爬蟲**,爬的是全國各省的疫情狀況。然後將情況繪成**,條形圖等。

所包含的庫有

from selenium import webdriver #爬蟲模擬操作

import requests as res

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt #繪製條形圖

from prettytable import prettytable #繪製**所用模組

driver=webdriver.chrome()
獲取資料

driver.get(ulr)

driver.find_element_by_xpath('//*[@class="expandrow___1y0wd internaltable___bqt_t"]').click()

mingcheng,now,al,die,cue,tot=,,,,,

response = res.get(ulr)#provincename

for i in range(34):#共擁有34個省和自治區

#獲得各個省現有,累計,死亡,**人數情況

response=driver.find_element_by_xpath(f'//*[@class="areabox___sl7gp themea___1bo7o numformat___nz7u7 flexlayout___1pyge"]/div/div[1]')

html = response.text

html=html.split('\n')

for i in range(len(html)):

html[i]=html[i].translate(str.maketrans('','',','))

if html[0]=='湖北':#因湖北人數過多,圖表不易檢視,單獨列出

hubei=html

continue

driver.close()

然後列印出**

x = prettytable(["名稱","現有","累計","死亡","**"])

x.add_row([hubei[0],hubei[1],hubei[2],hubei[3],hubei[4]])

for i in range(len(mingcheng)):

x.add_row([mingcheng[i],now[i],al[i],die[i],cue[i]])

print(x)

hubei[1],hubei[2],hubei[3],hubei[4]='現有:'+hubei[1],'累計:'+hubei[2],'死亡:'+hubei[3],'**:'+hubei[4]

hubei=hubei[:-1]

output:

+--------+------+-------+------+-------+

| 名稱 | 現有 | 累計 | 死亡 | ** |

+--------+------+-------+------+-------+

| 湖北 | 4 | 68143 | 4512 | 63627 |

| 香港 | 134 | 5348 | 105 | 5109 |

| 上海 | 92 | 1200 | 7 | 1101 |

| 新疆 | 64 | 966 | 3 | 899 |

| 四川 | 39 | 757 | 3 | 715 |

| 台灣 | 39 | 567 | 7 | 521 |

| 廣東 | 38 | 1938 | 8 | 1892 |

| 福建 | 29 | 443 | 1 | 413 |

| 陝西 | 26 | 456 | 3 | 427 |

| 內蒙古 | 26 | 297 | 1 | 270 |

| 天津 | 15 | 273 | 3 | 255 |

| 甘肅 | 10 | 180 | 2 | 168 |

| 江蘇 | 8 | 674 | 0 | 666 |

| 浙江 | 7 | 1287 | 1 | 1279 |

| 河北 | 7 | 373 | 6 | 360 |

| 北京 | 6 | 944 | 9 | 929 |

| 山東 | 5 | 848 | 7 | 836 |

| 山西 | 5 | 215 | 0 | 210 |

| 河南 | 4 | 1284 | 22 | 1258 |

| 重慶 | 3 | 589 | 6 | 580 |

| 遼寧 | 3 | 283 | 2 | 278 |

| 雲南 | 3 | 213 | 2 | 208 |

| 湖南 | 1 | 1020 | 4 | 1015 |

| 黑龍江 | 1 | 949 | 13 | 935 |

| 安徽 | 0 | 991 | 6 | 985 |

| 江西 | 0 | 935 | 1 | 934 |

| 廣西 | 0 | 260 | 2 | 258 |

| 海南 | 0 | 171 | 6 | 165 |

| 吉林 | 0 | 157 | 2 | 155 |

| 貴州 | 0 | 147 | 2 | 145 |

| 寧夏 | 0 | 75 | 0 | 75 |

| 澳門 | 0 | 46 | 0 | 46 |

| 青海 | 0 | 18 | 0 | 18 |

| ** | 0 | 1 | 0 | 1 |

+--------+------+-------+------+-------+

全國總情況繪製條形圖

plt.rcparams['font.family'] = ['sans-serif']

plt.rcparams['font.sans-serif'] = ['simhei']#語言編輯

df1=pd.series(tot)

df1.plot(kind='bar')

column=['現有', '累計', '死亡', '**']

scale_l = range(len(column))

plt.xticks(scale_l,column,rotation=0,size=20)

plt.title('中國總新冠狀病情情況',fontsize='20')

全國各省的情況繪圖:

l5 = np.array([now,al,die,cue])

l5=l5.t

plt.rcparams['figure.figsize'] = (15,5)

df2 = pd.dataframe(l5, columns=['現有', '累計', '死亡', '**'])

df2.plot(kind='bar') #分開並列線束

scale_ls = range(len(mingcheng))

plt.xticks(scale_ls,mingcheng,rotation=0)

plt.title('中國各省新冠狀病情情況',fontsize='20')

最後輸出裡還有湖北單獨的情況,因為湖北基數較大

output:

湖北現有:4

累計:68143

死亡:4512

**:63627

Python3爬蟲全國位址資訊

php方式寫的一團糟所以就用python3重寫了一遍,所以因為第二次寫了,思路也更清晰了些。提醒 可能會有502的錯誤,所以做了異常以及資料庫事務處理,暫時沒有想到更好的優化方法,所以就先這樣吧。待更懂python再進一步優化哈 歡迎留言賜教 請求網頁 def get html url global...

Python爬蟲入門教程,通過爬蟲實戰學會爬蟲。

未完待續 requests簡介 python中原生的一款基於網路請求的模組,功能強大,簡單便捷,效率極高.作用 模擬遊覽器請求。安裝 pip install requests 使用 指定url 發起請求 獲取響應資料 持久化儲存 import requests if name main 指定url ...

Python爬蟲獲取新冠肺炎資料

本文描述了最基本的爬蟲使用方法。目標 獲取 中外國某國家疫情感染人數。按f12進入開發者模式,檢視目標 的資訊,以google瀏覽器為例子 url最後類似於亂碼形式的字串為國家名轉碼以後的文字。如果需要獲取其他國家的資料,只需要將url變為 國家名稱 在拼接時無法使用中文,可以使用quote方法進行...