-
[투자 이야기] 쉬운 것부터 하자 ft.Python, Notion보통날의/돈 공부 2020. 6. 14. 22:31
나의 투자 목표는 간단하다. 한국, 미국, 중국 3개 국가의 필수소비재 업종에 대해선 누구보다 잘 알고 잘 투자하는 것
쉽게 쉽게 가자
쉽게 쉽게 가자. 나와 물리적으로 가장 가까이 있는 한국 필수소비재 기업을 이해하고 투자하는 것부터 시작한다. 한국의 필수 소비재 기업은 어떤 기업들이 있을까? 한경컨센서스에 들어가 식음료 업종 리포트를 찾아 추천 종목들을 하나하나 적다 보니 얼추 17개 종목들이 모였다. 생각보다 많은데...?
# 종목 코드 모음 "종목명 : 종목코드" stocks = { '하이트진로':'000080', # 소주, 맥주 제조업체 '제일제당':'097950', # CJ 제일제당 '오리온':'271560', # 오리온 쵸코파이 '농심':'004370', # 농심 신라면과 너구리 '오뚜기':'007310', # 오뚜기 3분 카레 '매일유업':'267980', # 매일우유 '롯데칠성':'005300', # 칠성사이다 'KT&G':'033780', # 담배 'CJ프레시웨이':'051500', # 식자재유통 '현대그린푸드':'005440', # 식자재유통 '롯데푸드':'002270', # 파스퇴르, 돼지바 '대상':'001680', # 청정원 'SPC삼립':'005610', # 삼립빵 '동원F&B':'049770', # 동원참치 '롯데제과':'280360', # 자일리톨, 가나쵸콜릿 '빙그레':'005180', # 빙그레 바나나우유 '해태제과':'101530' # 홈런볼, 오예스 }
너 지금 뭐하고 있니
기업의 재무제표부터 들여다보고 투자할지 말지를 결정해야 하겠지만, 내가 아무리 숫자에 미친 데이터 분석가라도 재무제표만 들여다보면 재미가 없다. 그래서 각 종목들과 관련된 뉴스를 정기적으로 수집하고, 뉴스를 살펴보며 기업의 동향을 파악하는 것부터 시작하기로 했다
주기적으로 모 포털 사이트에서 노출되는 종목 관련 최신 뉴스 20개를 모으는 것부터 시작한다
이렇게 노출되는 뉴스를 수집하고 있다 # 다음 금융 페이지에서 종목 관련 뉴스를 크롤링해온 후 options = webdriver.ChromeOptions() options.add_argument('--headless') options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') driver = webdriver.Chrome('chromedriver',options=options) for name in list(stocks.keys()): print(name+': 관련 뉴스 작업 시작') # 종목 리스트에서 종목 코드를 ticker로 저장 ticker = stocks[name] # 각 종목의 (다음) 뉴스 페이지로 진입 url = '뉴스 페이지 주소{}'.format(ticker) driver.get(url) time.sleep(4) html = driver.page_source soup = BeautifulSoup(html,'html.parser') # 여기서부터는 뉴스를 수집하는 코드 datas = [] lsts = soup.select('div.box_contents ul.listW > li') # 뉴스의 리스트를 통째로 불러와서 # 뉴스의 링크, 타이틀, 발간 정보 등을 불러오고, 발간 정보를 노션에 붙여넣을 타이틀로 수정 -> new_title for l in lsts: u = l.span.a['href'] # 뉴스 링크 t = l.span.a.get_text().strip() # 타이틀 d = l.span.p.get_text().strip() # 발간 정보 pub = d.split(' · ')[0] # 발간자 p_date = d.split(' · ')[1] # 발간일| new_title = '_'.join([p_date,t,pub]) # 각 뉴스의 헤드라인을 접했다면, 이제는 각 뉴스의 링크에 들어가서 뉴스의 본문을 가져오기 url = '뉴스의 주소{}'.format(ticker)+u driver.get(url) time.sleep(4) html = driver.page_source soup = BeautifulSoup(html,'html.parser') # 타이틀, 링크, 본문 등을 datas로 모아두기 data = [new_title,url,d]+[p.get_text().strip() for p in soup.select('div.articleView > div > section > p')] datas.append(data) print('{} 관련 뉴스 {}개를 수집함'.format(name,str(len(lsts))))
대충 이런 식으로 뉴스의 본문들이 수집된다 '편하게'에 대한 집착
뉴스를 막상 수집했는데, 어떻게 봐야할지가 고민으로 남아있었다. 그냥 위 이미지처럼 출력된 상태로 봐야하나, 엑셀로 출력해야하나, 워드로 출력해야 하나. 하나씩 다 시도를 해봤지만, 매번 업데이트되는 파일을 찾아서 열어보려면 반드시 맥북이 있어야했다. 구글 드라이브에 업로드해두고 억셀이나 워드 파일을 열어보는 것도 시도했지만 정말 귀찮은 작업이더라
아이폰, 아이패드, 맥북 이 3가지 기기에서 자유롭게 열람할 수 있는 플랫폼이 필요했다. 여러가지 웹 드라이브와 icloud 환경을 시도해보고서 내가 찾은 솔루션은 Notion이었다. Python 패키지 중에 Notion을 조작할 수 있는 오픈소스 패키지가 있다. 그 패키지를 이용해 수집된 뉴스들을 노션에 축적하기 시작했다
page = client.get_block(url) # 정보를 입력할 노션의 페이지 # 어떤 종목 페이지 블럭에 이를 추가할지 판단 # 있으면 기존의 페이지 블록에 추가, 없으면 페이지 블록을 새로 생성 page_title = '_'.join([name,ticker]) if page_title not in [t.title for t in page.children]: page.children.add_new(PageBlock,title=page_title) c_page = client.get_block(page.children[-1].id) else: idx = [t.title for t in page.children].index(page_title) c_page = client.get_block(page.children[idx].id) # 수집한 데이터들을 하나씩 입력하기, 기존에 이미 입력된 데이터라면 건너뛰고 없는 데이터만 입력하기 for data in datas: title = data[0] if title not in [t.title for t in c_page.children]: print(title+': 뉴스 신규 입력') c_page.children.add_new(PageBlock,title=title) c2_page = client.get_block(c_page.children[-1].id) for d in data[1:]: c2_page.children.add_new(TextBlock,title=d) print(name+': 뉴스 업데이트 완료')
노션에 축적된 뉴스들 쉽고 편해야 재밌지
그렇게 난 아이폰, 아이패드에서 언제든지 확인하고 중요한 기사를 메모하고 공부할 수 있게 되었다. 매일같이 시간이 날 때마다 새로운 뉴스를 추가하고, 핸드폰이나 아니패드로 중요한 문장을 표시하면서 뉴스를 읽는다. 세상 편하다. 몇시간의 투자로 난 핸드폰에서 웹 브라우저를 열고 사이트에 들어가 종목 코드를 입력하고 뉴스를 검색하는 과정이 생력되었다. 귀찮은 작업이 줄어들자 생각의 시간은 많아지고, 투자는 더 재밌어 졌다
그래, 뭐든지 쉽고 편해야 재밌지
'보통날의 > 돈 공부' 카테고리의 다른 글
[Side-Project #1] 관심 종목 위클리 리포트 (0) 2020.07.04 [Side-Project #1] 2020-07-01 관심 종목 종가 리포트 (0) 2020.07.01 [Side-Project #1] 투자도 운동처럼 (0) 2020.06.29 [Side-Project #1] 첫 한 걸음을 겪어 보니 (0) 2020.06.29 [투자 이야기] 재미는 투자의 이유가 될 수 있을까? (0) 2020.06.14