관리 메뉴

Today is Present.

아이투자에서 종목 데이터 크롤링 후 종목분석 본문

프로그래밍, 코딩

아이투자에서 종목 데이터 크롤링 후 종목분석

MorningPhys 2021. 3. 13. 07:31

# 아이투자 사이트에서 데이터 크롤링 후 5년간 EPS 가 상승한 기업을 보여주기

# EPS(Earning Per Share): 주당 순이익 = 당기순이익 ÷ 발행주식수
# 최근 6년 이상 EPS가 계속 상승한 회사: 20개 밖에 되지 않는다.
# 최근 10년 이상 EPS가 계속 상승한 회사는 1개

# 회사명, 종목코드는 대한민국 대표 기업공시채널(KIND) 에서 엑셀 파일로 다운받았습니다. 

# namelist2.csv 파일은 회사명, 종목코드, url 로 기재되어 있어야 합니다. 

# url 은  http://search.itooza.com/search.htm?seName=005930 처럼 구성하여 입력하시면 됩니다. 

# url 에 대한 수식은 다음과 같아요. 종목코드 6자리를 맞추기 위해 text 함수를 사용합니다. 

# ="http://search.itooza.com/index.htm?seName=" & text(C2, "000000")

import pandas as pd
import urllib.request
from bs4 import BeautifulSoup

pd_url = pd.read_csv('namelist2.csv', engine='python')
for i in pd_url.index:
url = pd_url.loc[i, "url"]
handle = None
while handle == None:
try:
handle = urllib.request.urlopen(url)
except:
pass
page = handle.read()
soup = BeautifulSoup(page, 'html.parser', from_encoding='utf-8')
table = soup.findAll('div', {'id':'indexTable2'})
th_list = table[0].findAll('th')
tr_list = table[0].findAll('tr')
td_list = tr_list[6].findAll('td')

td = tr_list[1].findAll('td')
eps = []

for tdi in td:
if tdi.text == "N/A":
eps.append(0)
else:
eps.append(int(tdi.text.replace(",", "")))
flag = 0
for j in range(len(eps) - 1):
if eps[j] -eps[j+1] > 0:
flag = flag + 1
else:
break
if flag > 5:
print("OK! 5 years" + pd_url.loc[i, "회사명"])

main.py
0.00MB
namelist2.csv
0.17MB

 

출처: www.youtube.com/watch?v=Z6mDBW-t6_k

기업공시 채널(KIND): kind.krx.co.kr/corpgeneral/corpList.do?method=loadInitPage

 

 

728x90
반응형