Allen's 데이터 맛집
[네이버금융] 시가총액 정보를 csv파일로 저장하기 본문
네이버 금융에서 시가총액 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)