앞서 BeautifulSoup을 활용해 보도자료의 리스트의 형태로 제목들을 가져왔다.
https://seanpark11.tistory.com/10
파이썬으로 정부 보도자료 크롤링(crawling/scraping)하기
우리나라의 사회/산업/경제 전반적인 상황을 보기위해 신문도 참고할 자료 중 하나이긴 하지만, 각 정부 부처에서 제공하는 보도자료가 사실에 근접해서 보기에 훨씬 유용한 자료라 생각한다. 하지만, 매번 정부의..
seanpark11.tistory.com
하지만, 리스트는 python에 데이터를 저장하기엔 유용한 형태일지 몰라도 일반적으로 활용하기에는 제한이 된다.
따라서, 우리는 활용하기 편한 다른 형태로 데이터를 저장해야 하는데 그중 하나로 엑셀을 활용하고자 한다.
python을 이용해 excel을 동작하게 만드는 모듈은 여러가지가 있다고 하는데, 그중에서도 Openpyxl을 사용할 예정이다.
다른 모듈들보다 굉장히 활발하게 업데이트 하고 있는 모듈인 것 같다는 게, 처음 사용하던 때와도 조금씩 사용법이 달라져서 이번에 다시 이용해보면서 공부를 했어야 했다.
https://openpyxl.readthedocs.io/en/stable/tutorial.html
Tutorial — openpyxl 3.0.3 documentation
There is no need to create a file on the filesystem to get started with openpyxl. Just import the Workbook class and start work: A workbook is always created with at least one worksheet. You can get it by using the Workbook.active property: Sheets are give
openpyxl.readthedocs.io
위에 첨부한 document를 참고해서 나중에 틈틈이 공부할 필요가 있다.
다시 본론으로 돌아가서, 내가 구현하고 싶은 동작은 다음과 같다.
이전에 저장했던 titles 리스트의 elements를 내가 이미 가지고 있는 press_gov.xlsx 파일 Sheet1에 저장하는 것이다.
Openpyxl을 활용한 excel 저장 코드는 다음과 같다.
from openpyxl import load_workbook #이미 저장된 workbook을 불러오는 load_workbook을 import
def main():
########################################중 략################################################
wb = load_workbook('press_gov.xlsx') #( )안의 파일을 불러온다.
sheet1 = wb.get_sheet_by_name('Sheet1') #wb의 ( )안의 시트를 불러온다.
for row_index in range(1,len(titles)+1):
sheet1.cell(row=row_index, column=1).value = row_index # 행번호 부여
sheet1.cell(row=row_index, column=2).value = titles[(row_index-1)] # titles리스트 내의 요소를 입력
wb.save(filename = 'press_gov.xlsx') #위의 내용을 저장
if __name__ == "__main__":
main()
이외에도 엑셀 파일하나를 만들어서 저장하는 방법도 있다. 아래처럼 말이다.
from openpyxl import Workbook
wb = Workbook()
하지만, 기존에 내가 활용해야 하는 엑셀 양식이 있어서 그것을 이용하기 위한 상황을 가정했기 때문에 Workbook을 사용하지 않았다.
실제로 엑셀을 사용하는 많은 업무들이 기존에 있는 양식에 값만 넣으면 어떤 결과가 나오도록 하는게 시간을 단축하기에 더 바람직하니까 말이다.
어쨋든, 잘만 활용한다면 Openpyxl 모듈은 여러 군데에 활용할 수 있는 가능성이 보인다.
'Python > Data Prep' 카테고리의 다른 글
파이썬으로 여러 페이지에 있는 정부 보도자료 크롤링하기_페이지네이션 | Web Scraping (0) | 2021.10.04 |
---|---|
[Data Prep] 제멋대로인 주소(광역지자체명) 표준화하기 (0) | 2021.08.15 |
금감원 XML 파일(corp_code) python으로 읽어내기 (0) | 2020.03.14 |
[Data Prep] 파이썬을 활용한 공공데이터API 접근하기_미세먼지 통계 | BeautifulSoup, Open API (0) | 2020.03.04 |
[Data Prep] 파이썬으로 산업부 보도자료 크롤링 하기 (13) | 2020.02.23 |