Skip to content

Instantly share code, notes, and snippets.

@askcompany-kr
Last active March 25, 2020 10:20
Show Gist options
  • Select an option

  • Save askcompany-kr/dcfa135d23344b79028ae4015091875a to your computer and use it in GitHub Desktop.

Select an option

Save askcompany-kr/dcfa135d23344b79028ae4015091875a to your computer and use it in GitHub Desktop.
코로나바이러스감염증-19 페이지에 대한 파이썬/Pandas 크롤링 샘플

파이썬 크롤링 샘플

코로나바이러스감염증-19 (COVID-19)

헬로데이터사이언스 유튜브 채널에 올라온 R을 활용한 웹 크롤링 1편의 파이썬 버전을 만들어봤습니다.

pip install requests beautifulsoup4 pandas openpyxl

궁금한 점이 있으시면, Ask Company 페이스북 그룹에 질문주세요..

여러분의 파이썬/장고 페이스메이커가 되겠습니다.

Ask Company 이진석 드림 ([email protected])

import requests
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np
page_url = "http://ncov.mohw.go.kr/bdBoardList_Real.do"
params = {
'brdId': 1,
'brdGubun': 14,
}
res = requests.get(page_url, params=params)
res.raise_for_status()
soup = BeautifulSoup(res.text, 'html.parser')
html = str(soup.select_one(".data_table.mgt16"))
df = pd.read_html(html)[0]
df.columns = ['지역', '국가', '환자발생수(사망)']
df2 = df['환자발생수(사망)'].str.extract(r'([\d,]+)[ㄱ-힣\s\(\)]+([\d,]*)')
df = df.drop('환자발생수(사망)', axis=1)
df['환자발생수'] = df2[0].str.replace(',', '').apply(lambda s: s and int(s))
df['환자사망수'] = df2[1].str.replace(',', '').apply(lambda s: s and int(s) or 0)
print(df.shape)
print(df.head())
df.to_csv("코로나.csv")
df.to_excel("코로나.xlsx")
지역 국가 환자발생수 환자사망수
0 아시아 중국 81218 3281
1 아시아 홍콩 386 4
2 아시아 대만 216 2
3 아시아 마카오 29 0
4 아시아 일본 1193 43
5 아시아 싱가포르 509 2
6 아시아 태국 827 4
7 아시아 말레이시아 1518 14
8 아시아 베트남 123 0
9 아시아 인도 434 9
10 아시아 필리핀 462 33
11 아시아 캄보디아 87 0
12 아시아 네팔 2 0
13 아시아 러시아 438 0
14 아시아 스리랑카 97 0
15 아시아 아프가니스탄 42 1
16 아시아 파키스탄 887 6
17 아시아 인도네시아 579 49
18 아시아 부탄 2 0
19 아시아 몰디브 13 0
20 아시아 방글라데시 33 3
21 아시아 브루나이 91 0
22 아시아 몽골 10 0
23 아시아 카자흐스탄 63 0
24 아시아 우즈베키스탄 46 0
25 아시아 키르기스스탄 16 0
26 아시아 동티모르 1 0
27 아시아 미얀마 2 0
28 중동 이란 24811 1934
29 중동 쿠웨이트 191 0
30 중동 바레인 390 3
31 중동 아랍에미리트 248 2
32 중동 이라크 316 27
33 중동 오만 84 0
34 중동 레바논 304 4
35 중동 이스라엘 1238 1
36 중동 이집트 366 19
37 중동 알제리 231 17
38 중동 카타르 501 0
39 중동 요르단 127 0
40 중동 튀니지 114 3
41 중동 사우디아라비아 767 1
42 중동 모로코 143 4
43 중동 시리아 1 0
44 미주 미국 53268 696
45 미주 캐나다 1432 20
46 미주 브라질 1546 25
47 미주 멕시코 370 4
48 미주 에콰도르 790 15
49 미주 도미니카공화국 245 3
50 미주 아르헨티나 266 4
51 미주 칠레 746 1
52 미주 콜롬비아 277 3
53 미주 페루 395 2
54 미주 코스타리카 158 2
55 미주 파라과이 22 1
56 미주 파나마 345 6
57 미주 볼리비아 27 0
58 미주 자메이카 19 1
59 미주 온두라스 30 0
60 미주 세인트빈센트그레나딘 1 0
61 미주 쿠바 40 1
62 미주 가이아나 5 1
63 미주 베네수엘라 70 0
64 미주 앤티가바부다 1 0
65 미주 트리니다드토바고 51 0
66 미주 우루과이 162 0
67 미주 세인트루시아 3 0
68 미주 수리남 2 0
69 미주 과테말라 20 1
70 미주 바하마 4 0
71 미주 엘살바도르 3 0
72 미주 바베이도스 17 0
73 미주 니카라구아 2 0
74 미주 아이티 6 0
75 미주 그레나다 1 0
76 미주 벨리즈 1 0
77 미주 도미니카연방 1 0
78 유럽 이탈리아 69170 6820
79 유럽 독일 32986 157
80 유럽 프랑스 22302 1100
81 유럽 영국 8077 422
82 유럽 스페인 36673 2696
83 유럽 오스트리아 4486 25
84 유럽 크로아티아 306 0
85 유럽 핀란드 700 1
86 유럽 스웨덴 2016 25
87 유럽 스위스 8836 86
88 유럽 벨기에 3743 88
89 유럽 덴마크 1460 24
90 유럽 에스토니아 352 0
91 유럽 조지아 67 0
92 유럽 그리스 695 17
93 유럽 북마케도니아 136 2
94 유럽 노르웨이 2371 8
95 유럽 루마니아 576 7
96 유럽 네덜란드 4749 213
97 유럽 벨라루스 81 0
98 유럽 리투아니아 179 1
99 유럽 산마리노 187 20
100 유럽 아제르바이잔 72 1
101 유럽 아이슬란드 588 2
102 유럽 모나코 23 0
103 유럽 룩셈부르크 875 8
104 유럽 아르메니아 235 0
105 유럽 아일랜드 1125 6
106 유럽 체코 1236 1
107 유럽 포르투갈 2060 23
108 유럽 라트비아 180 0
109 유럽 안도라 164 1
110 유럽 폴란드 749 8
111 유럽 우크라이나 84 3
112 유럽 헝가리 187 8
113 유럽 보스니아 헤르체고비나 131 1
114 유럽 슬로베니아 442 1
115 유럽 리히텐슈타인 46 0
116 유럽 세르비아 249 2
117 유럽 슬로바키아 191 0
118 유럽 불가리아 201 3
119 유럽 몰타 107 0
120 유럽 몰도바 109 1
121 유럽 알바니아 123 4
122 유럽 사이프러스 116 0
123 유럽 터키 1529 37
124 유럽 몬테네그로 22 0
125 유럽 코소보 61 1
126 오세아니아 호주 1709 7
127 오세아니아 뉴질랜드 102 0
128 오세아니아 피지 3 0
129 오세아니아 파푸아뉴기니 1 0
130 아프리카 나이지리아 22 0
131 아프리카 세네갈 79 0
132 아프리카 카메룬 72 0
133 아프리카 남아프리카공화국 402 0
134 아프리카 토고 18 0
135 아프리카 부르키나파소 99 3
136 아프리카 DR콩고 36 2
137 아프리카 코트디부아르 25 0
138 아프리카 수단 3 1
139 아프리카 에티오피아 11 0
140 아프리카 가봉 6 1
141 아프리카 가나 27 2
142 아프리카 기니 4 0
143 아프리카 케냐 16 0
144 아프리카 나미비아 3 0
145 아프리카 중앙아프리카공화국 4 0
146 아프리카 콩고 4 0
147 아프리카 적도기니 6 0
148 아프리카 에스와티니 4 0
149 아프리카 모리타니아 2 0
150 아프리카 르완다 36 0
151 아프리카 세이셸 7 0
152 아프리카 베냉 5 0
153 아프리카 라이베리아 3 0
154 아프리카 탄자니아 12 0
155 아프리카 지부티 3 0
156 아프리카 모리셔스 1 0
157 아프리카 감비아 3 0
158 아프리카 잠비아 36 0
159 아프리카 차드 3 0
160 아프리카 니제르 2 0
161 아프리카 소말리아 3 0
162 아프리카 카보베르데 2 1
163 아프리카 짐바브웨 1 0
164 아프리카 마다가스카르 13 0
165 아프리카 앙골라 2 0
166 아프리카 에리트레아 1 0
167 아프리카 우간다 9 0
168 아프리카 모잠비크 1 0
169 기타 일본 크루즈 712 7
170 기타 팔레스타인 60 0
171 기타 지브롤터 15 0
172 기타 세인트마틴 8 0
173 기타 생바르텔레미 3 0
174 기타 바티칸 1 0
175 기타 마르티니크 53 0
176 기타 프랑스령 기아나 20 0
177 기타 패로제도 118 0
178 기타 건지섬 20 0
179 기타 프랑스령 폴리네시아 18 0
180 기타 저지섬 18 0
181 기타 프랑스령 레위니옹 71 0
182 기타 과들루프 62 0
183 기타 케이맨제도 5 1
184 기타 퀴라소 4 1
185 기타 마요트 24 0
186 기타 푸에르토리코 31 2
187 기타 29 1
188 기타 미국령 버진아일랜드 17 0
189 기타 아루바 9 0
190 기타 버뮤다 6 0
191 기타 신트마르틴 2 0
192 기타 몬트세라트 1 0
193 기타 뉴칼레도니아 8 0
194 기타 그린랜드 4 0
195 기타 맨섬 13 0
196 기타 터크스 케이커스 제도 1 0
197 합계 합계 394669 18104
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment