# 爬蟲教學2-讓電腦讀懂網路的json檔 這次的教學會用到兩個套件 1. request 請安裝這一個套件 有些網站的製作者,會專門給做爬蟲或是數據分析的人一種API。 是對網址的查詢方法,在網址上輸入相對的條件與需求,就能直接的以json的方式顯示在網頁上,並直接爬取。 接下來我們用,CSSE(衛福部疾管署)與TWCC(台灣AI雲)所合作提供的Covid-19大數據資料,來做數據分析吧~ 在使用API時,我們可以觀察到網址入下 https://covid-19.nchc.org.tw/api.php?tableID=2001 他在網址的"?"後面有一個"tableID"這個格式就有點像儲存變數的概念,直接透過網址裡面所抓取到的變數找到我們想要的資料。 到我(2022/5/1)的整理,ID共有以下: >2001-各縣市疫苗接種率 2002-各國疫苗接種率 2003-各梯次COVID-19公費疫苗涵蓋率 2004-各廠牌COVID-19疫苗接種人次 2005-各國家COVID-19疫苗涵蓋率 2006-12 歲以上各縣市 COVID-19 疫苗接種率 (含外籍人士) 3001-各國疫情報表 4001-台灣疫情報表(同3001) 4002-台灣新增死亡COVID-19個案表 4003-台灣COVID-19最新病例、檢驗統計 5001-台灣COVID-19 縣市鄉鎮疫情表單 5002-時間軸-縣市鄉鎮疫情表單 5003-[補零]時間軸-縣市鄉鎮疫情表單 6001-未接種COVID-19疫苗者已登記意願且尚未取得預約資格」登記人數統計 6002-未接種COVID-19疫苗者已登記意願且尚未取得預約資格」登記人數統計_五齡組 ```python= import requests req = requests.get("https://covid-19.nchc.org.tw/api/covid19?CK=covid-19@nchc.org.tw&querydata=2001", verify=False) #一開始我們一樣先到網頁把資料都抓下來 print(req.text) ``` ```python= #經過上面的執行後你會發現他的所抓到的文字就完全是跟python的dict的格式是一樣的欸! #這種格式叫做json檔所以我們可以把它直接轉換成dict方便我們來處理資料 req = requests.get("https://covid-19.nchc.org.tw/api/covid19?CK=covid-19@nchc.org.tw&querydata=2001", verify=False) list_of_dicts = req.json() ``` 接下來我們要做查詢的動作,而網頁上也已經有提供查詢對應的key了 ![](https://i.imgur.com/PtFh9ZU.png) 所以我們也只需要照著他的方法查詢就可以了喔~ ```python= #我們以查詢每日疫苗施打率來示範 import requests req = requests.get("https://covid-19.nchc.org.tw/api/covid19?CK=covid-19@nchc.org.tw&querydata=2001", verify=False) list_of_dicts = req.json() # {"id":"ID","a01":"日期","a02":"縣市別","a03":"總人口數","a04":"新增接種人次","a05":"累計接種人次","a06":"疫苗覆蓋率 (%)","a07":"累計配送量 (劑)","a08":"剩餘量 (劑)","a09":"剩餘量 (%)","a10":"AZ新增接種人次","a11":"AZ累計接種人次","a12":"AZ疫苗覆蓋率 (%)","a13":"AZ累計配送量 (劑)","a14":"AZ剩餘量 (劑)","a15":"AZ剩餘量 (%)","a16":"Moderna新增接種人次","a17":"Moderna累計接種人次","a18":"Moderna疫苗覆蓋率 (%)","a19":"Moderna累計配送量 (劑)","a20":"Moderna剩餘量 (劑)","a21":"Moderna剩餘量 (%)"} for i in list_of_dicts: print(i["a01"], i["a02"], i["a06"])#輸入對應的key產生相對的value ``` --- 下一篇:https://hackmd.io/@real7660/rJDPMIm_5