출처:
퀀트투자쿡북 / 저자: 이현열: 4.2.2 기업공시채널에서 오늘의 공시 불러오기
(혼자한 연습)
목표: 오늘의 공시를 통해 날짜별로 공시 기업 정보를 가져오고자 함
주의: 이번에는 POST 형식이므로 이 점 유의할 것
library(rvest)
library(httr)
library(tidyverse) #dplyr을 받아야 %>%(pipeline)을 사용할 수 있음
우선 데이터를 전부 긁어오자
url <- "https://kind.krx.co.kr/disclosure/todaydisclosure.do" #공통된 부분
#POST 형식이므로 FromData 부분으로 쿼리를 작성해줘야 함
Sys.setlocale("LC_ALL", "English") #오류를 피하기 위해 시스템 언어를 영어로 임시적으로 변경
## [1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"
data <- POST(
url,
body = list(
method = "searchTodayDisclosureSub",
currentPageSize = "15",
pageIndex = "1",
orderMode = "0",
orderStat = "D",
forward = "todaydisclosure_sub",
chose = "S",
todayFlag = "N",
selDate = "2018-12-28"
)
)
data #인코딩: UTF-8임을 파악 #여기까지가 데이터를 읽어오는 부분
## Response [https://kind.krx.co.kr/disclosure/todaydisclosure.do]
## Date: 2019-08-10 15:47
## Status: 200
## Content-Type: text/html; charset=UTF-8
## Size: 10.5 kB
##
##
##
##
##
##
## <section class="scrarea type-00">
## <table class="list type-00 mt10" summary="<U+C2DC><U+AC04>, <U+D68C><U+C0AC><U+BA85>, <U+ACF5><U+C2DC><U+C81C><U+BAA9>, <U+C81C><U+CD9C><U+C778>, <U+CC28><U+D2B8>/<U+C8FC><U+AC00>">
## <caption><U+BAA9><U+B85D></caption>
## <colgroup>
## ...
이제 테이블 정보를 긁어와야함
data <- #이제 html을 읽어와야 함
read_html(data) %>%
html_table(fill = T) %>% #table 형식의 데이터는 이 코드를 추가시켜줘야 함
.[[1]]
Sys.setlocale("LC_ALL", "Korean")
그에 따른 결과물은 아래와 같다
data %>% head()
## NA NA NA
## 1 18:32 화신테크 최대주주변경
## 2 18:26 에스제이케이 증권 발행결과(자율공시)(제3자배정 유상증자)
## 3 18:11 아이엠텍 [정정]유상증자결정(제3자배정)
## 4 18:10 시그넷이브이 유형자산 양수 결정
## 5 18:09 자기주식매매신청내역(코스닥시장)
## 6 18:09 대량매매내역(코스닥시장)
## NA NA
## 1 화신테크 공시차트\r\n\t\t\t\t\t주가차트
## 2 에스제이케이 공시차트\r\n\t\t\t\t\t주가차트
## 3 아이엠텍 공시차트\r\n\t\t\t\t\t주가차트
## 4 시그넷이브이 공시차트\r\n\t\t\t\t\t주가차트
## 5 코스닥시장본부
## 6 코스닥시장본부