반응형
이번 포스트에서는 python에서 실제 웹 상에 존재하는 데이터들을 excel로 저장하는 방법에 대해서 알아보도록 하겠습니다.
따라서 아래의 세가지 라이브러리를 활용해보도록 하겠습니다.
01 urllib : url을 호출하고 데이터를 불러들입니다.
02 BeautifulSoup : html문서를 분석하고 파싱합니다.
03 openpyxl : 매트릭스 형태로 저장하기 위한 excel 파일을 작성합니다 .
예제는 urllib와 BeautifulSoup 포스트에서 활용한 DART(전자공시시스템* )의 RSS의 최근공시정보를 활용해보고자 합니다. RSS 최근공시 정보는 최근 50개의 공시(지분,펀드 제외)를 불러옵니다.
* 상장법인 등이 공시서류를 인터넷으로 제출하고, 투자자 등 이용자는 제출 증시 인터넷을 통해 조회할 수 있도록 하는 종합적 기업공시 시스템
예제 데이터 구조
활용할 데이터의 구조를 살펴보면 개별 기업은 item으로 <title>, <link><category> 등으로 구성되는 걸 알 수 있습니다.
데이터 추출 및 저장
# In1: 예제에 필요한 library들을 가지고 import 합니다.
import urllib.request as req
from bs4 import BeautifulSoup
from openpyxl import Workbook
# In2: 웹 데이터를 저장할 Workbook을 생성하고 활성 WorkSheet를 선택해줍니다.
wb=Workbook()
ws=wb.active
#ln2: 분석 DART URL 오픈
url = "http://dart.fss.or.kr/api/todayRSS.xml"
url_open = req.urlopen(url)
#ln3: BeautifulSoup 객체 생성
soup = BeautifulSoup(url_open, "html.parser")
#ln4: channel > title를 추출합니다.
title = soup.channel.title
print(title.string)
#ln5: DART의 item들을 WorkSheet에 레코드 별로 붙여넣습니다.
item = soup.find_all("item")
for i in item:
ws.append([i.title.string,
i.category.string,
i.guid.string
])
#In6: excel 파일을 저장합니다.
wb.save('simpletest.xlsx')
이상 실제 웹 상에 존재하는 데이터들을 excel로 저장하는 방법에 대해서 알아보았습니다.
다른 개별 라이브러리에 대한 참고는 이전 포스트들을 참고해주시기 바랍니다. 감사합니다.
반응형
'ITStudy > Python' 카테고리의 다른 글
[Python] openpyxl로 excel 다루기03 (urllib, BeautifulSoup) (0) | 2021.02.24 |
---|---|
[python] BeautifulSoup를 통한 크롤링 차단 시 해결 방법 (0) | 2021.02.22 |
[Python] openpyxl로 excel 다루기01 (excel 구조, sheet 및 cell) (0) | 2021.02.18 |
[Python] BeautifulSoup로 웹 데이터 분석 with DART (0) | 2021.02.01 |
[Python] urllib로 웹 데이터 핸들링 with DART (0) | 2021.01.31 |