山東創睦網絡科技有限公司:使用Python爬取全球新冠肺炎疫情數據

使用Python爬取全球新冠肺炎疫情數據
導入所需庫包
獲取實時數據的url
正式編寫程序
查看輸出結果
導入所需庫包
在獲取數據以前,咱們須要先安裝好所需的包requests和pandas:
1.若是是使用pycharm能夠直接使用File->Settings->Project->Project Interpreter->選擇「+」->在搜索欄內輸入須要下載的包python

山東創睦網絡科技有限公司:使用Python爬取全球新冠肺炎疫情數據

在這裏我已經安裝好了pandas和requests,但須要注意的是在安裝pandas是系統會自動下載好另外兩個包python-dateutil和numpy,這裏面咱們不用去管他。
出錯的看這裏!
當時我覺得已經下好了pandas可是在敲代碼時候又報錯了,解決方法以下:
山東創睦網絡科技有限公司:使用Python爬取全球新冠肺炎疫情數據
出現這個問題實際上是pandas版本和python版本不兼容,我又換了一個版本pandas1.0.1就能夠了。咱們須要先將pandas刪除,在點擊加號在下面有一個,如圖,將版本降下來就能夠啦。
山東創睦網絡科技有限公司:使用Python爬取全球新冠肺炎疫情數據
2.若是使用cmd去裝python包也能夠,只須要找好路徑:
先找到當時的下載位置
(這是我電腦中的安裝位置,打開到Scripts這個文件夾)
(速度比較慢,當時我下的時候只有4KB,不知道爲何這麼慢)
C:\Users\A\AppData\Local\Programs\Python\Python38\Scripts
cd C:\Users\A\AppData\Local\Programs\Python\Python38\Scripts
pip install pandas
pip install requests
若是你以前裝過可是因爲各類緣由,必定要先把他刪掉
pip unstall pandas 再從新操做。
獲取實時數據的url
在獲取的時候,最好選用火狐瀏覽器,我這裏用的是火狐,由於都是中文的,找起來比較方便。
如今在瀏覽器上覆制下面的連接,點擊右鍵檢查元素
https://news.qq.com/zt2020/page/feiyan.htm#/global?pool=bj
與咱們以前查找字段的方式不一樣,由於動態數據只能在json可以找到,只是查看代碼是不夠的。咱們須要用另外一種方式專門適用於爬取動態數據。
找到「網絡」,並刷新一下,就會發現ranklist,雙擊點進去,咱們就能看到一個動態數據列表,下面的任務就是根據url按照字段寫進去。
山東創睦網絡科技有限公司:使用Python爬取全球新冠肺炎疫情數據
正式編寫程序
將ranklist的請求地址複製下來,以後就能夠開始編寫咱們的python程序了。json

import requestsimport jsonimport pandas as pd//將pandas包用別名pd表示
url='https://api.inews.qq.com/newsqa/v1/automation/foreign/country/ranklist'//剛纔複製的url地址
r=requests.get(url)//用requests獲取地址
content=json.loads(r.text)//將全部json數據轉化爲數據字典的形式123456

這個時候能夠在屏幕中看到獲取來的數據,使用一行代碼
print(content)print(type(content))//咱們也能夠查看它如今的數據類型<dict>就表明數據字典的形式12
下面咱們對數據進行處理。每一列的順序能夠隨便寫,但必定要隊形數組下標的字段,咱們能在響應裏面找到json數組的相應字段。
山東創睦網絡科技有限公司:使用Python爬取全球新冠肺炎疫情數據api

df=pd.DataFrame(columns=['國家和地區','所屬洲','日期','今日新增病例','確診人數','疑似病例','死亡病例','治癒病例'])for i in range(len(content['data'])):
    df.loc[i+1]=[content['data'][i]['name'],
                 content['data'][i]['continent'],
                 content['data'][i]['date'],
                 content['data'][i]['confirmAdd'],
                 content['data'][i]['confirm'],
                 content['data'][i]['suspect'],
                 content['data'][i]['dead'],
                 content['data'][i]['heal']]12345678910

因爲數據量很是的大,咱們也能夠字段關鍵字查找,代碼以下:數組

print(df[0:1])
    df2=df[df['國家和地區'].isin(['新加坡'])]
    print(df2)123

查看輸出結果
當前我只在控制屏中進行輸出,固然也能夠把他保存到csv中,下面是運行截圖:
山東創睦網絡科技有限公司:使用Python爬取全球新冠肺炎疫情數據
這樣子一個簡單的動態數據爬取就完成了,有沒有感受很容易呢?瀏覽器

相關文章
相關標籤/搜索