스파르타코딩클럽 금융인을 위한 파이썬 업무자동화 1주차

 

import urllib.request
import openpyxl 

wb = openpyxl.load_workbook('관리종목.xlsx')
sheet = wb['종목']

new_rows = list(sheet.rows)[1:]

for row in new_rows:
  print(row[0].value , row[1].value)
  
  company =row[0].value
  code = row[1].value
  url = f'https://ssl.pstatic.net/imgfinance/chart/item/area/year3/{code}.png'
  urllib.request.urlretrieve(url, f"imgs/{company}.jpg")

https://colab.research.google.com/notebooks/welcome.ipynb

 

Welcome To Colaboratory

Run, share, and edit Python notebooks

colab.research.google.com

코랩은 연속연결시 최대 90분, 하루 이용제한 12시간 ( 머신러닝, 딥러닝 분석같은거 돌릴 거 아니면 신경쓸필요없음)

 

[ 코렙에서 라이브러리 install 시 설치 명령어 앞에 ! 를 붙여 주어야 한다. 크롤링 관련 라이브러리  (bs4, requests) #파이썬 문법아님 ]

!pip install bs4 requests

[네이버에서 뉴스 가져오는 함수 만들기]

import requests

from bs4 import BeautifulSoup


def get_news(keyword):
  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)

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

  lis = soup.select('#main_pack > section > div > div.group_news > ul > li')

  for li in lis:
    a = li.select_one('a.news_tit')
    print(a.text, a['href'])



get_news('현대자동차')

 

[ 코렙에서 라이브러리 install 시 설치 명령어 앞에 ! 를 붙여 주어야 한다. 엑셀다루기(openpyxl) #파이썬 문법아님]

!pip install openpyxl

 

[ openpyxl 기본코드]

from openpyxl import Workbook

wb= Workbook()
sheet = wb.active

sheet['A1'] = '안녕하세요!'

wb.save("샘플파일.xlsx")
wb.close()

 

[ 엑셀 읽기 기본코드]

import openpyxl
wb = openpyxl.load_workbook('샘플파일.xlsx')
sheet = wb['Sheet']


sheet['A1'].value

 

import openpyxl
wb = openpyxl.load_workbook('샘플파일.xlsx')
sheet = wb['Sheet']

rows = sheet.rows

for row in rows:
  print(row[0].value , row[1].value, row[2].value )

 

[네이버에 기업 리스트를 불러와서 뉴스제목과 해당url을 news 폴더에 날짜이름으로  저장]

import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
from datetime import datetime


def get_news(keyword):
  
  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)

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

  lis = soup.select('#main_pack > section > div > div.group_news > ul > li')

  today = datetime.today().strftime("%Y-%m-%d")
  for li in lis:
    a = li.select_one('a.news_tit')
    row = [a.text, a['href']]
    sheet.append(row)    

  wb.save(f"news/{today}{keyword}.xlsx")
  wb.close()


keywords = ['삼성전자','LG에너지솔루션','SK하이닉스','NAVER','삼성바이오로직스','삼성전자우','카카오','삼성SDI','현대차','LG화학','기아','POSCO홀딩스','KB금융','카카오뱅크','셀트리온','신한지주','삼성물산','현대모비스','SK이노베이션','LG전자','카카오페이','SK','한국전력','크래프톤','하나금융지주','LG생활건강','HMM','삼성생명','하이브','두산중공업','SK텔레콤','삼성전기','SK바이오사이언스','LG','S-Oil','고려아연','KT&G','우리금융지주','대한항공','삼성에스디에스','현대중공업','엔씨소프트','삼성화재','아모레퍼시픽','KT','포스코케미칼','넷마블','SK아이이테크놀로지','LG이노텍','기업은행']

for keyword in keywords:
  print(keyword)
  get_news(keyword)

 

[content/news 폴더를 압축하기 명령어]

!zip -r /content/files.zip /content/news

 

[ 해당 패스의 파일 이름 바꾸기]

import os

path = '/content/news'
files = os.listdir(path)

for name in files:
  new_name = name.split('.')[0]+ '(뉴스).xlsx'
  os.rename(f'/content/news/{name}' , f'/content/news/{new_name}')

 

[해당 패스의 사진 다운로드 하기]

import urllib.request

url = 'https://ssl.pstatic.net/imgfinance/chart/item/area/year3/005930.png?sidcode=1679913151293'
urllib.request.urlretrieve(url, "삼성전자.jpg")

 

[숙제 : 관리종목 엑셀 파일을 코랩에서 활용하여 해당 기업의 3개년 그래프 이미지 다운하시]

import urllib.request
import openpyxl 

wb = openpyxl.load_workbook('관리종목.xlsx')
sheet = wb['종목']

new_rows = list(sheet.rows)[1:]

for row in new_rows:
  print(row[0].value , row[1].value)
  
  company =row[0].value
  code = row[1].value
  url = f'https://ssl.pstatic.net/imgfinance/chart/item/area/year3/{code}.png'
  urllib.request.urlretrieve(url, f"imgs/{company}.jpg")

 

[해당 imgs폴더의 내용을 imgs.zip으로 압축하시오] 

!zip -r /content/imgs.zip /content/imgs

 

 

1주차 : 네이버에서 뉴스 가져오는 함수 , 코랩 폴더에 저장 및 다운로드 ,네이버금융사진 저장
2주차 : 데이터프레임( 순이익, 종가, pbr<1, 시총1조이상, per<20) 그려보기 , 해외주식(야후쿼리) 정보 보기https://iamipro.tistory.com/232

 

금융인을 위한 파이썬 업무자동화 2주차

DataFrame 만들기 Pandas : 데이터 분석 해외주식야후사이트: https://finance.yahoo.com/quote/AAPL?p=AAPL&.tsrc=fin-srch Apple Inc. (AAPL) Stock Price, News, Quote & History - Yahoo Finance Find the latest Apple Inc. (AAPL) stock quote, histor

iamipro.tistory.com

3주차 : dart 상장/비상장 엑셀 추출, dart API 로 종목 정보 (증자,배당,직원정보,이사보수, 재무정보, 이익잉여금, 당기순이익, 지분율, 연봉 TOP5 등)

https://iamipro.tistory.com/233

 

금융인을 위한 파이썬 업무자동화 3주차

스파르타코딩클럽 금융인을 위한 파이썬 업무자동화 3주차 [다트 open api 발급] https://opendart.fss.or.kr/uat/uia/egovLoginUsr.do 전자공시 OPENDART 시스템 | 로그인 opendart.fss.or.kr [ 구글 드라이브 코랩 가기] h

iamipro.tistory.com


4주차 : 최적의 단기/장기 이동평균선 구하기

https://iamipro.tistory.com/234

 

금융인을 위한 파이썬 업무자동화 4주차

금융인을 위한 파이썬 업무자동화 4주차 https://drive.google.com/ Google Drive: 로그인 이메일 또는 휴대전화 accounts.google.com [라이브러리 설치 명령어 yfinance pandas-datareader finance-datareader !pip install yfinance

iamipro.tistory.com

 


5주차 : 변동성 돌파적략 최적값 k 구하기 , 월요일에 사서 금요일에 팔경우 수익나는 종목 보기

https://iamipro.tistory.com/235

 

금융인을 위한 파이썬 업무자동화 5주차

금융인을 위한 파이썬 업무자동화 5주차 https://drive.google.com/ Google Drive: 로그인 이메일 또는 휴대전화 accounts.google.com 전일 종가에서 금일 시작가에서 판다. [ 오르는 추세라 판단] [주가 가져오는

iamipro.tistory.com

 

LIST

+ Recent posts