-
[python] 코로나 홈페이지 웹 크롤링 및 데이터전처리 : 정적 페이지 웹크롤링, beautifulsoup 사용DataAnalysis/웹크롤링 2022. 4. 25. 19:53
- 코로나 홈페이지에 있는 데이터 크롤링 하기
import requests from bs4 import BeautifulSoup import pandas as pd import matplotlib.pyplot as plt import matplotlib result = [] url = 'http://ncov.mohw.go.kr/bdBoardList_Real.do?brdId=1&brdGubun=13&ncvContSeq=&contSeq=&board_id=&gubun=' response = requests.get(url) if response.status_code == 200: html = response.text soup = BeautifulSoup(html,'html.parser') tbody=soup.find('div',class_="data_table midd mgt24").find('tbody') tr_list= tbody.find_all('tr') for tr in tr_list: loc = tr.find('th').text # 지역 td_list=tr.find_all('td') dome = td_list[1].text # 할인율 over = td_list[2].text patient =td_list[3].text die = td_list[4].text result.append([ loc,dome,over,patient,die]) print(loc,dome,over,patient,die) else : print(response.status_code) pr = pd.DataFrame(result, columns=['loc', 'dome', 'over', 'patient','die']) pr.to_csv('co.csv', encoding='cp949')
1. 기존열로 인덱스 지정
pr.index=pr['loc']
+ 인덱스 복구
pr1.reset_index()
2. 행 삭제
pr1=pr1.drop(index=['합계']) pr1
3. 열 삭제
pr1.drop(columns=['loc'],inplace=True) pr1
4. loc로 원하는 데이터 값 가져오기
pr1.loc['서울','dome']
5. 타입 확인
pr1.dtypes
6. 데이터 치환 및 데이터 타입 변경 : replace astype
숫자 쉼표 제거
pr1['dome']=pr1.dome.str.replace(',','').astype('int64')
7. 데이터 정렬
pr1.sort_values(by='dome',axis=0,ascending=False)
8. 행 만들기
pr1.loc['합계']=[0,0,0,0] pr1
9. 행 합계 (axis=0 같은열 행합계)
pr1.loc['합계','over']=pr1['over'].sum(axis=0) pr1.loc['합계','patient']=pr1['patient'].sum(axis=0) pr1.loc['합계','die']=pr1['die'].sum(axis=0) pr1
10. boxplot
import pandas as pd import matplotlib as mpl import matplotlib.pyplot as plt import seaborn as sns #한글타이틀 plt.rc('font', family='Malgun Gothic') sns.boxplot(data=pr1,orient="v")
11. 열 생성: lambda 사용
pr1['결과']=pr1['patient'].apply(lambda x:"많음" if x>1000000 else "적음") pr1
'DataAnalysis > 웹크롤링' 카테고리의 다른 글
subway 서브웨이 전국매장 웹크롤링 (0) 2022.04.25 쿠우쿠우 웹크롤링 전국매장 정보 가져오기 (beautifulsoup) (0) 2022.04.22 카페베이 coffeebay 웹크롤링 매장정보 가져오기 (beautifulsoup) (0) 2022.04.22 파스쿠찌 매장정보 크롤링 (Beautifulsoup,지역별 열합계 구하기) (0) 2022.04.19 Python 교촌치킨 국내매장 크롤링(Selenium 동적 웹크롤링) (3) 2022.04.17