728x90

나도코딩님의 수업을 듣고 따로 정리한 것입니다. 

 

 

 

시가총액 200위를 네이버에서 검색 후 csv 파일에 넣고 저장하는 작업입니다. 

 

먼저 코드!

import csv
import requests
from bs4 import BeautifulSoup


url = "https://finance.naver.com/sise/sise_market_sum.nhn?&page=1"

filename = "시가총액1-200.csv"
f = open(filename, "w", encoding="utf-8-sig", newline="")  # newline : 공백으로 하면 자동 줄바꿈됨.
writer = csv.writer(f)


title = "N	종목명	현재가	전일비	등락률	액면가	시가총액	상장주식수	외국인비율	거래량	PER	ROE".split("\t")
# ["N", "종목명", "현재가"]

print(type(title))
writer.writerow(title)

for page in range(1,5):
    res = requests.get(url + str(page))  #url 정보, 페이지 숫자 넣어주기
    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:
        colums = row.find_all("td")
        if len(colums) <= 1:   # 의미없는 데이터는 skip
            continue
        data = [column.get_text() for column in colums]
        # print(data)
        writer.writerow(data)

 

 

만약 open 줄에서 encoding 을 ="utf8" 로 했다면 엑셀로 csv 파일을 보았을 때 한글이 깨져서 나온다. 

이것의 해결방법은 utf-8-sig 을 넣어주는 것.

 

 

저장 후 실행을 누르면 vscode 옆 파일 칸에 내가 설정한 이름 (filename) 으로 생성된 것을 확인할 수 있다. 

 

직접 폴더로 들어가서 엑셀 파일로 실행해보면 

 

 

 

 

확인 가능 !!

+ Recent posts