코딩 개발일지/파이썬 데이터분석(스파르타 코딩클럽)

<스파르타 코딩클럽 파이썬 데이터분석 1주차>

찐쥬 2023. 2. 26. 19:59

<주식데이터를 이용한 파이썬 데이터분석 1주차 개발일지>

 

 

스파르타 코딩에서 파이썬 데이터분석은 별다른 프로그램을 깔지 않고,

구글의 코랩을 이용해서 배운다고 한다!

 

이 전에 내일배움카드로 배웠던 오프라인 강의에서는 아나콘다, 쥬피터노트북으로 이용했는데

중간에 쥬피터노트북이 오류나서 코랩으로 갈아탔는데 어쩌면 잘된일?ㅎ

 

프로그램을 깔지 않아도 되니 덕분에 회사에서도 따라해볼 수 있어서

요 강의는 회사에서 중간중간 여유 생길 때 마다 학습했다!(월급루팡)

 

우선 강의 제목과 같게 파이썬을 활용하는 데이터 분석이기 때문에

파이썬의 기초 문법에 대해 배웠다.

(변수, 리스트, 딕셔너리, 함수, 조건문, 반복문 등)

 

다행히 어느정도 알고 있는 내용이라 이해하는데 그렇게 오래 걸리지 않았다.

(그렇다고 나 혼자 주르륵 코드를 입력 하는 건 아직까지 할 수 없는일...ㅠ..)

 

 

 

이후 라이브러리를 이용해서 스크래핑 하는 방법을 배웠다.

'삼성전자'뉴스 스크래핑 하는 법을 배웠는데 신기하고 재미있었음ㅋ

 

뉴스 제목 - 오른쪽 마우스 - 검사 - 태그 오른쪽 마우스 - copy - copy selector

검사 누르면 이런식으로 html 뼈대를 볼 수 있다.

 

!pip install bs4 requests

을 입력해서 모듈을 깔아주고, 해당 라이브러리 기능을 이용하면 된다

 

soup.select_one('태그복붙') 을 이용하면, 1개의 기사?만 가져오고

soup.select('태그복붙') 을 이용하면 여러 가지의 기사를 가져올 수 있다.

 

 

for문을 이용해서 뉴스를 검색했을 때 나오는 웹페이지의 한페이지를

순차적으로 받아 기사 헤드라인(text)과 링크(['href'])만 뽑아올 수 있고,

이 기능을 새로운 함수에 담아 사용하면 된다. 

 

추가로, 위의 데이터들을 엑셀파일에 업도르하고,

파일명을 바꾸는 것까지 배웠다.

 

<크롤링 코드>

 
import requests
from bs4 import BeautifulSoup

from openpyxl import Workbook
from datetime import datetime

def get_news(keyword):                                         <- get_news 라는 함수를 만든다
wb= Workbook()
sheet = wb.active

headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(f'https://search.naver.com/search.naver?where=news&ie=utf8&sm=nws_hty&query={keyword}',headers=headers)                               <- {keyword} 는 함수의 파라미터 값이 들어간다(네이버 뉴스검색 사이트)

soup = BeautifulSoup(data.text, 'html.parser')


lis = soup.select('#main_pack > section > div > div.group_news > ul > li')  <- 여러가지의 li(뉴스 한박스)을 lis라는 변수에 넣음

for li in lis:                                                            <- lis에 들어가 있는 뉴스박스를 하나씩 li 에 가져온다
a = li.select_one('a.news_tit')                           <- li 에 순차적으로 들어온 뉴스박스 안의 a 타이틀을 a 로 받는다
row = [a.text, a['href']]                                       <- a태그의 text. 즉 기사 헤드라인을 가져오고, href는 a태그의 링크를 가져온다
sheet.append(row)                                             <- sheet의 행(row)에 추가해준다

today = datetime.today().strftime("%Y-%m-%d")  <- 오늘 날짜를 불러온다

wb.save(f"news/{today}_{keyword}.xlsx")      <-news/의 폴더 안에 날짜_종목명.xlsx 라는 파일을 저장해준다
wb.close()

 

 

이 전에 배울 때 함수에 대해 제대로 이해를 못했었는데,

내가 직접 만들고 활용해보는 과정을 해보니 이제서야 함수를 활용하는 법을 알 수 있었다!..

(그렇다고 혼자 촤르륵 쓸 수 있는 단계는 아직..)

 

 

 

<이미지를 다운받아 저장하는 법>

import urllib.request

urllib.request.urlretrieve(url, "삼성전자.png")

 

여러가지 종목 코드가 쓰여진 엑셀파일을 가져와 활용하여

차트 이미지를 한 번에 다운받는 게 1주차의 숙제였고, 제출까지 했음! (아무튼 했음!!!)

 

 

 

사실 이번주 일요일이 되어서야

집에서 제대로 강의를 듣고 밀린 개발일지를 작성하느라 머리가 뒤섞였다.ㅋ

 

그리고 두 강의를 동시에 들으니 더더욱이..

그래서.. 지금 강의 목차를 되짚어보며 끄적끄적 적고 있긴 하나

며칠 지났다고 벌써 기억 가물가물한 것 실화인가..?(ㅋㅋㅋㅋ ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ)

 

 

파이썬 데이터분석 강의는 회사에서 보고 열심히 따라하고 있는데

사실 2주차까지 완강했으나 yfinance 라이브러리를 불러오는 과정에서

info에서 오류가 떠서 강의를 진행하지 못하고 있다!!!! 이게 무슨일!

 

엄청난 열의로 강의를 듣고 있었는데 계속 오류가 나는 바람에 강제로 멈춘상황.....

 

숙제를 제출해야 다음 강의로 넘어갈 수 있는데 숙제 제출을 못함..ㅠㅠ

한 4일째 여기에 멈춰있다구요... 내가 1등이었는데,..

 

그리하여 급속도로 내 열정이 사그라들었고..,. 변명아니고 진짜임,,!

열정이 사그라듦과 동시에 기억에서 지워지는 강의내용들,..

 

하루 빨리 yfinance의 업데이트가 끝나길 바란다..ㅠ_ㅠ

 

 

성격상 이렇게 대충 넘어가는 것 못견딤!!!!!!!!!!!!!!

 

2주차까지 완강했으나,

오늘은 넘 지치니 1주차 개발일지까지만 쓰겠음ㅋ