Appia의 IT세상

[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 엑셀로 추출하기 (종목, 종가) 본문

Python/Python Crawler[크롤러]

[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 엑셀로 추출하기 (종목, 종가)

Appia 2021. 9. 30. 06:03
반응형

[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 엑셀로 추출하기 (종목, 종가)

[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 엑셀로 추출하기 (종목, 종가)

먼저 앞선, 포스팅에서 코스피, 코스닥 종목에 대해서 종목과 가격에 대해서 출력하는 방법에 대해서 이야기를 해봤습니다. 그래서 이번 포스팅에서는 이와같이 출력하는 데이터를 엑셀로 저장하는 방법에 대해서 이야기를 해보고자 합니다. 

 

이번 포스팅은 Win32com 기반으로 이루어집니다. 따라서, 해당 되는 부분들에 대해서 사용하기 위해서는 다음 링크를 바탕으로 Win32Com을 모듈을 설치해주시길 바랍니다. 

파이썬[Python] 014 Pywin32 설치

 

파이썬[Python] 014 Pywin32 설치

오늘은 pywin32모듈 설치 하는 방법에 대해서 살펴 보겠습니다. 많은 분들이 python을 사용하는 이유 중 하나는 업무에 있어서 반복적이고 지속적인 업무들에 대해 자동화 하기 위해서 사용 하는 분

appia.tistory.com

먼저, 이전 포스팅에서 사용된 코드들을 대부분 그대로 사용하였습니다. 그중에서 약간의 변화를 준것이 있습니다. 한개의 엑셀 파일의 각 시트 단위로 출력하기 위해서 각 KOSPI 부분과 KOSDAQ 부분을 읽어오는 곳을 함수로 표현하였습니다. 

import win32com.client
import requests
from bs4 import BeautifulSoup

def return_value(address,sheet, count):
    res = requests.get(address)
    soup = BeautifulSoup(res.content, 'html.parser')

    section = soup.find('tbody')
    items = section.find_all('tr', onmouseover="mouseOver(this)")

    for item in items:
        count = count + 1
        basic_info = item.get_text()
        sinfo = basic_info.split("\n")
        print("\t" + sinfo[1] + "\t\t" + sinfo[2] + "\t\t\t" + sinfo[3])\

        sheet.Cells(count, 1).Value = sinfo[1]
        sheet.Cells(count, 2).Value = sinfo[2]
        sheet.Cells(count, 3).Value = sinfo[3]

    return  count

def extract_excel_kosdaq(sheet, count):
    baseaddress = 'https://finance.naver.com/sise/sise_market_sum.naver?sosok=1&page='

    for i in range(1, 32):
        count = return_value(baseaddress + str(i), sheet, count)

def extract_excel_kospi(sheet, count):
    baseaddress = 'https://finance.naver.com/sise/sise_market_sum.naver?&page='
    for i in range(1, 35):
        count = return_value(baseaddress + str(i), sheet, count)


if __name__ == '__main__':
    excel = win32com.client.Dispatch("Excel.Application")
    excel.Visible = True

    workbook = excel.Workbooks.Add()  # WorkBooks 생성

    sheet = workbook.Worksheets("Sheet1")
    sheet.Name ="KOSDAQ"
    count = 0
    extract_excel_kosdaq(sheet, count)


    count = 0


    sheet1 = workbook.Worksheets.Add()
    sheet1.Name = "KOSPI"
    extract_excel_kospi(sheet1, count)
    workbook.SaveAs("File_KOSDAQ_KOSPI.xlsx")
    excel.Application.Quit()

위의 코드에서 count 변수의 역할이 중요합니다. 실제, 각 항목들을 엑셀 row와 맞추기 위해서 사용이 됩니다. 그리고 함수 내에서, 다음과 같이 count를 리턴하게 처리를 하였습니다. 

        count = return_value(baseaddress + str(i), sheet, count)

엑셀에 출력시에 한페이지에 내용들만 출려되기 때문입니다. 즉, 함수가 끝나면 count가 다시 0이 되기 때문에 함수내에서 이루어진 동작들 또한 반영될 수 있게 처리를 하였습니다. 그럼 결과를 한번 살펴보겠습니다. 

출력결과 

이와 같이 시트 단위로 각 항목들을 출력할 수 있습니다. 다음 파일은 결과로 추출한 내용입니다. 참고하시길 바랍니다. 

File_KOSDAQ_KOSPI.xlsx
0.10MB

 

 

이와 같은 방법으로 코스피 및 코스닥에 원하는 종목들을 엑셀로 추출할 수 있습니다. 

[파이썬 크롤링]네이버 주식 시가 총액 코스닥전체 항목 출력하기

 

[파이썬 크롤링]네이버 주식 시가 총액 코스닥전체 항목 출력하기

[파이썬 크롤링]네이버 주식 시가 총액 코스닥전체 항목 출력하기 이전 포스팅에서는 네이버 금융에 있는 정보를 토대로, 코스피 지수 종목들의 항목들을 출력하는 방법에 대해서 포스팅

appia.tistory.com

[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기

 

[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기

[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기 이전 포스팅에서는 네이버 주식에서 시갈총액의 첫번째 화면에 있는 항목과 가격에 대해서 출력을 하는 방법에 대해서

appia.tistory.com

이번 포스팅에서는 [파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 엑셀로 추출하기 (종목, 종가)라는 주제로 간단히 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다. 

반응형
Comments