본 포스트는 중국주식 종목티커과 종목명을 크롤링하는 코드를 소개하는 글이다. 밑의 그림에서 볼 수 있듯이, 빨간색 박스 아래 부분들을 간단히 크롤링할 것이다.각각 종목티커(股票代码)와 종목명(股票名称)에 해당하며,크롤링한 주식들은 션전성분지수500(深成500)의 주식들이다.
library(rvest)
library(htmltab)
library(stringr)
library(readr)
library(httr)
library(dplyr)
Sys.setlocale("LC_ALL", "English")
# 상해 380 : bk_4506
# 션강통 : bk_4583
# 후강통 : bk_4584
# 션전 성분지수 500
url <- 'https://q.stock.sohu.com/cn/bk_4491.shtml'
data <- GET(url)
CN_data <- data %>% read_html() %>% html_table(fill = T)
name_cn <- data %>% read_html() %>% html_node(.,xpath = "//*[@id='BIZ_MS_board_caption']") %>% html_text()
Sys.setlocale("LC_ALL", "Chinese")
cn_data <- as.data.frame(CN_data)
# 데이터 정리
ticker_data <- cn_data[-1,1] # 종목번호
name_data <- cn_data[-1,2] # 종목명
head(ticker_data)
head(name_data)
# 종목 번호 수정
ticker_data <- str_pad(ticker_data,width = 6, side = c("left"), pad = "0")
# 종목 번호 + 종목명
chinese_data <- cbind(ticker_data,name_data)
# 데이터 저장
write.csv(as.data.frame(ticker_data),paste0(name_cn,".csv"))
티커 데이터를 가져오는 것이라 코드가 단순하다.
1. 종목명도 크롤링은 했지만, 저장은 안했다. 엑셀로 저장할 때 중국어를 읽지못해서 깨지기 때문에 그렇다. 만약 종목명도 저장하고 싶다면 저장하는 데이터를 ticker_data에서 chinese_data로 수정하면 된다
2. 션전성분지수500말고 다른 주식들을 가져오고 싶다면 사이트명의 일정부분을 수정하면된다. 코드 주석에도 적어놨다. 해당 사이트에 가면 정말 여러가지 주제의 종목들이 있지만, 일단 션전 성분지수 포함에서 4개만 가져와봤다.
'투자를 위한 코딩 > R' 카테고리의 다른 글
R에서 중국 주식 수익률&상관관계 구하기 (0) | 2021.01.18 |
---|---|
R로 네이버 주식 데이터 크롤링 (0) | 2021.01.11 |
R로 중국 주식 크롤링 & 저변동성 분석 (0) | 2020.12.31 |
R로 주식 데이터 가져오기 & 베타 분석 (0) | 2020.12.09 |
다변량 통계분석과 R 모델링(多元统计分析及R语言建模) (1) (0) | 2020.11.29 |
댓글