【Day 26】- 分析卫生福利部疾病管制署(CDC)官网并取得确诊者 API,并用小程序及时取得官方确诊者数量(实战分析网站向外请求 API 加快爬虫节奏)

前情提要

昨天实战了用 Python 向猫咪图片的 API 请求。使用者可以输入一个数字,让程序可以爬取多张猫咪照片。

开始之前

今天要实战的是分析 CDC 网站,找出确诊者数量的 API ,之後写个小程序能够向其发出请求。

实战

卫生福利部疾病管制署官网 : https://www.cdc.gov.tw/

可以看到官网上有出现确诊者的数量。

起手式,先用开发工具的 Network 功能,并按下 F5 分析一下向外与向内的流量。

接下来,那些 dash 的看起来很可疑,每个点开来看看 response 看一下内容。发现 dash3 这个的回应内容应该就是我们想要的。

我们找到了! 再来,点选 Header 看如何对其发出请求。

简单地,这只是个普通的 GET 请求,我们能直接将 Request URL 贴到网址,看回传的回应。

最後,只要写个简单的小程序向 https://covid19dashboard.cdc.gov.tw/dash3 发出 requests GET 请求。

import requests

if __name__ == '__main__':
    CDCApi = 'https://covid19dashboard.cdc.gov.tw/dash3'
    resp = requests.get(CDCApi)
    print(resp.text)

'''
{"0":{"确诊":"16,305","死亡":846,"送验":"3,602,515","排除":"3,585,122","昨日确
诊":7,"昨日排除":"13,046","昨日送验":"12,506"}}
'''

接下来,用两种方法取出确诊者的位置,转换为 JSON 之後用字典的方式存取,或者用 regex 来取出该位置的值。

  • 将其转换为 JSON 格式,再取出确诊者的位置。
import requests
import json

if __name__ == '__main__':
    CDCApi = 'https://covid19dashboard.cdc.gov.tw/dash3'
    resp = requests.get(CDCApi)
    json_resp = json.loads(resp.text)
    print(json_resp['0']['昨日确诊'])
'''
7
'''
  • 用正则表达式来取出昨日确诊数。
import requests
import re

if __name__ == '__main__':
    CDCApi = 'https://covid19dashboard.cdc.gov.tw/dash3'
    resp = requests.get(CDCApi)
    regex_result = re.findall('"昨日确诊":(\d+),', resp.text)
    print(regex_result[0])
'''
7
'''

结语

今天带各位看了 CDC 官网,并找到了他们的确诊者数量的 API ,撰写了个小程序向其发出了一个请求。

关於这个 API ,笔者之前有写一个 line bot https://github.com/Vincent550102/covid19-daily-alert 定时爬取确诊者数量,并传 line 提醒,但之後因为 Line API 的push_message 有上限就先关掉了QQ。

明日内容

明天会带各位实战用 Dcard 的 API 来快速爬取文章。

补充资料

CDC 官网 https://www.cdc.gov.tw/


<<:  人脸辨识-day26

>>:  27 | 【区块组合套件介绍】Stackable

Day 03:转吧转吧七彩霓虹灯之 p10k

我把从第一天到现在每天的 Home 目录都放上 GitHub 了,README.md 里面有说明 ...

Day16:[搜寻演算法]Binary search - 二分搜寻法

利用将资料切一半的方式来做搜寻,举例来说,如果要从数字1–100猜终极密码,如果采用线性搜寻法就是...

Day 9 - Event

Event 表示在 DOM 物件上所发生的事件,例如 click点击滑鼠 dblclick滑鼠连点两...

第 30 型 - 环境配置与建构 (Build)

实务上,因应不同的开发阶段,应用程序会运行在开发环境 (Develop Environment)、预...

【Day21】Git 版本控制 - git 建立快捷指令 alias

身为一名工程师最讨厌的是什麽?我想其一就是重复、乏味的工作。 因为工程师的惰性,在程序的世界中有模组...