Allen's 데이터 맛집

[네이버금융] 시가총액 정보를 csv파일로 저장하기 본문

Programming/Web Scraping

[네이버금융] 시가총액 정보를 csv파일로 저장하기

Allen93 2023. 8. 10. 22:39

 

네이버 금융에서 시가총액 1위부터 200위까지의 주식 정보를 csv파일 형식으로 저장하는 예제입니다.

import csv
import requests
from bs4 import BeautifulSoup

url = 'https://finance.naver.com/sise/sise_market_sum.nhn?sosok=0&page='


filename = '시가총액1-200.csv'
#엑셀 파일로 열때 문자가 깨지면, utf8 이 아니라 utf-8-sig로 입력
f = open(filename, 'w', encoding='utf-8-sig', newline='')
writer = csv.writer(f)

title = 'N	종목명	현재가	전일비	등락률	액면가	시가총액	상장주식수	외국인비율	거래량	PER	ROE	토론실'.split('\t')
print(type(title))
writer.writerow(title)


for page in range(1, 5):
    res = requests.get(url + str(page))
    res.raise_for_status()
    soup = BeautifulSoup(res.text, 'lxml')

    data_rows = soup.find('table', attrs={'class': 'type_2'}).find(
        'tbody').find_all('tr')
    for row in data_rows:
        columns = row.find_all('td')
        if len(columns) <= 1:  # 의미 없는 daya 는 skip
            continue
        data = [column.get_text().strip() for column in columns]

        #print(data)
        writer.writerow(data)