본문 바로가기
투자를 위한 코딩/R

R로 중국 주식 티커 데이터 가져오기

by swcha02 2021. 1. 18.

본 포스트는 중국주식 종목티커과 종목명을 크롤링하는 코드를 소개하는 글이다. 밑의 그림에서 볼 수 있듯이, 빨간색 박스 아래 부분들을 간단히 크롤링할 것이다.각각 종목티커(股票代码)와 종목명(股票名称)에 해당하며,크롤링한 주식들은 션전성분지수500(深成500)의 주식들이다. 

 

소후증권사이트 : https://q.stock.sohu.com/cn/bk_4491.shtml

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개만 가져와봤다. 

 

 

댓글