오늘의 코로나 확진자수를 스크레이핑(scraping) 해보도록 하겠습니다. 스크레이핑이란 웹사이트에 있는 어떤 정보를 추출해내는 기술을 뜻합니다.
저는 중앙재난안전대책본부 사이트 ncov.mohw.go.kr/ 에서 국내발생수와 해외유입수를 스크레이핑한 것을 정수로 변환한 후에 더하는 방식으로 오늘의 확진자수를 출력할 것입니다.
크롬에서 F12로 개발자도구를 열어보니, 확진자수 47과 17과 관련된 태그(요소)들을 찾아낼 수 있었습니다.
이제 사전준비가 다 되었습니다. BeautifulSoup 패키지를 이용해서 스크레이핑하도록 하겠습니다. 제가 작성한 파이썬 코드는 다음과 같습니다. BeautifulSoup 패키지를 설치 안 하신 분들은 pip3 install beautifulsoup4 등의 방식으로 설치해주세요.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
from urllib import request
from bs4 import BeautifulSoup
target = request.urlopen("http://ncov.mohw.go.kr/")
soup = BeautifulSoup(target, "html.parser")
nums = []
for item in soup.select("div.datalist"):
for data in item.select("span.data"):
nums.append(int(data.string))
print("오늘 코로나 확진자수: ", sum(nums), "명")
|
cs |
코드를 실행해보겠습니다.
오늘 코로나 확진자수가 제대로 스크레이핑 된 것을 확인하실 수 있습니다. 47 + 17하면 64 맞죠? 이 결과는 코드를 실행하는 시점에 따라 달라집니다.
b스카이비전의 추천글
'Dev > python' 카테고리의 다른 글
[python] 파이참 venv 가상환경 만들고 간단한 예제 코드 실행하기 (window 10) (9) | 2020.10.09 |
---|---|
[flask] flask로 웹 어플리케이션 만들기 (코로나19 오늘 확진자 수 알림) (0) | 2020.10.08 |
[python] 소수(prime number) 구하기, primePy 모듈 활용 (8) | 2020.10.07 |
[python] playsound 모듈로 음악 재생하기 (2) | 2020.10.06 |
[python] os.name의 리턴 nt, posix의 의미 (0) | 2020.10.05 |
[python] 리스트 요소 순서 뒤집는 3가지 방법 (0) | 2020.10.04 |
[python] range 함수로 범위 자료형 만들기 (0) | 2020.09.30 |
[python] print 함수 내에서 값들을 연결시킬 때 콤마(,)를 사용할 때와 덧셈(+)을 사용할 때의 차이 (0) | 2020.09.29 |