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) 으로 생성된 것을 확인할 수 있다.
직접 폴더로 들어가서 엑셀 파일로 실행해보면

확인 가능 !!
'Language > python' 카테고리의 다른 글
데이터 관리 (0) | 2021.04.04 |
---|---|
Django 테이블 만들기 - 반영 - 확인 (0) | 2021.04.03 |
웹 스크래핑 기초 ) 웹툰 (0) | 2021.03.24 |
SQLAlchemy 를 사용하여 api와 database 연결하기 (0) | 2021.02.27 |
파이썬,DB 연결 (SQLAlchemy, mysql-connector-python) (0) | 2021.02.25 |