일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Windows10
- Outlook
- 파이썬
- pyqt5
- pandas
- windows
- 오피스
- 파이썬GUI
- matlab
- VBA
- Android
- 파이썬3
- 엑셀
- python3
- office
- python
- 깃
- 윈도우10
- 윈도우11
- git
- pythongui
- 비주얼베이직
- Windows11
- 문자열
- 안드로이드
- 아웃룩
- Excel
- html
- win32com
- 파워포인트
Appia의 IT세상
[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 엑셀로 추출하기 (종목, 종가) 본문
[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 엑셀로 추출하기 (종목, 종가)
Appia 2021. 9. 30. 06:03[파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 엑셀로 추출하기 (종목, 종가)
먼저 앞선, 포스팅에서 코스피, 코스닥 종목에 대해서 종목과 가격에 대해서 출력하는 방법에 대해서 이야기를 해봤습니다. 그래서 이번 포스팅에서는 이와같이 출력하는 데이터를 엑셀로 저장하는 방법에 대해서 이야기를 해보고자 합니다.
이번 포스팅은 Win32com 기반으로 이루어집니다. 따라서, 해당 되는 부분들에 대해서 사용하기 위해서는 다음 링크를 바탕으로 Win32Com을 모듈을 설치해주시길 바랍니다.
먼저, 이전 포스팅에서 사용된 코드들을 대부분 그대로 사용하였습니다. 그중에서 약간의 변화를 준것이 있습니다. 한개의 엑셀 파일의 각 시트 단위로 출력하기 위해서 각 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이 되기 때문에 함수내에서 이루어진 동작들 또한 반영될 수 있게 처리를 하였습니다. 그럼 결과를 한번 살펴보겠습니다.
이와 같이 시트 단위로 각 항목들을 출력할 수 있습니다. 다음 파일은 결과로 추출한 내용입니다. 참고하시길 바랍니다.
이와 같은 방법으로 코스피 및 코스닥에 원하는 종목들을 엑셀로 추출할 수 있습니다.
[파이썬 크롤링]네이버 주식 시가 총액 코스닥전체 항목 출력하기
[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기
이번 포스팅에서는 [파이썬 크롤링]네이버 주식 시가 총액 코스피,코스닥 항목 엑셀로 추출하기 (종목, 종가)라는 주제로 간단히 포스팅을 해봤습니다. 혹 궁금하신 점이나 문의 사항이 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다.
'Python > Python Crawler[크롤러]' 카테고리의 다른 글
[파이썬 크롤링] Beautiful Soup에서 #document 부분에 대해서 크롤링 하는 방법 (4) | 2021.10.06 |
---|---|
[파이썬 크롤링]CSS Selector 사용하기 (0) | 2021.10.05 |
[파이썬 크롤링]네이버 주식 시가 총액 코스닥전체 항목 출력하기 (1) | 2021.09.27 |
[파이썬 크롤링]네이버 주식 시가 총액 코스피전체 항목 출력하기 (0) | 2021.09.26 |
[파이썬 크롤링]네이버 주식 시가 총액 코스피 50위까지 순위 항목 가격 출력하기(bs4, requests) (0) | 2021.09.24 |