我尝试为按股票收集股票投资信息编写代码。 第一步是创建一个文件夹来存储股票投资信息(如果尚不存在)。第二步是阅读网页并将其保存到文件中。最后阶段是读取保存的文件并创建数据框。 具体来说,我想检索与图像在同一页面上的红线内的信息作为数据框,并将其保存为 CSV 文件。我想从kospi 200指数中收集除ETNs、ETFs、REITs等纯股票的投资信息。 但是代码没有激活。
library(rvest)
library(stringr)
url <- "https://finance.naver.com/sise/sise_market_sum.nhn"
html <- read_html(url, encoding="euc-kr")
tables <- html %>%
html_nodes("table")
hrefs <- tables[2] %>%
html_nodes("a") %>%
html_attr("href")
hrefs
codes <- substr(hrefs, nchar(hrefs)-5, nchar(hrefs))
codes
code_list <- codes[c(TRUE, FALSE)]
get_investment_info <- function(url) {
webpage <- read_html(url)
# 투자정보 탭 클릭
invest_tab <- webpage %>%
html_nodes("a[href*=tab_invest]") %>%
html_attr("onclick") %>%
str_extract("(?<=showArea\\('tab_invest',)[^\\)]+(?=\\))") %>%
str_replace_all("'","") %>%
str_replace_all(" ","") %>%
str_split(",")
# 필요한 정보 스크랩핑
invest_info <- webpage %>%
html_node(paste0("#", invest_tab[[1]][1])) %>%
html_nodes(".aside_invest_table > tbody > tr") %>%
html_text() %>%
str_remove_all("[\r\n\t]") %>%
str_remove_all(",") %>%
str_trim() %>%
str_split(" ") %>%
unlist() %>%
matrix(ncol = 2, byrow = TRUE) %>%
as.data.frame() %>%
setNames(c("항목", "값")) %>%
filter(항목 %in% c("시가총액", "시가총액순위", "상장주식수", "액면가", "매매단위", "외국인한도주식수",
"외국인한도주식수(A)", "외국인보유주식수(B)", "외국인소진율(B/A)", "투자의견", "목표주가",
"52주최고", "52주최저", "PER", "EPS", "추정PER", "추정EPS", "PBR", "BPS",
"배당수익률", "동일업종PER", "동일업종등락률"))
return(invest_info)
}
url <- 0
invest_info <- 0
for (i in length(code_list)){
url[i]<- paste0("https://finance.naver.com/item/main.naver?code=", code_list[i])
html <- read_html(url, encoding = "euc-kr")
invest_info[i] <- get_investment_info(url[i])
}
write.csv(invest_info, "Korean_investment_info.csv", row.names = FALSE)
想好好改装一下。然后激活好。 综上所述,完成按股票抓取股票投资信息的R代码,抓取结果保存在CSV文件中。