inflearn logo
강의

講義

知識共有

[R] KOSPI/KOSDAQ 全銘柄データの収集および管理

種目コードの前処理作業

library(htmltab)는 실행시키면 실행이 안됩니다.

274

osykn6102

投稿した質問数 3

0

어제 R studio를 여기서 하는데로 최신버전으로 깔았고,

여기서 하라는 데로 그대로 설치를 했습니다.

그리고 여기 강의를 들으면서 따라하던 중..

library(htmltab) 이것을 실행시키면 아래와 같은 문구가 뜨네요..

library(htmltab)에서 다음과 같은 에러가 발생했습니다:‘htmltab’이라고 불리는 패키지가 없습니다.

잠시

install.packages("htmltab")을 실행하지 않아서 그런가 봤더니. 그것도 아니어서...

 

그래서 더 낮은 32bit버전으로 깔고 해봤는데요... 똑 같습니다.. 

그래서 인터넷에 검색해보니..

Package ‘htmltab’ was removed from the CRAN repository.

이렇게 나오네요..

여기 나와 있는 밑에 답변이 있길래 기쁜마음에 복사해서 붙여놓고 하나하나 실행시켜봤습니다..

setwd("D:\\stock")

#library(htmltab)

url<-"http://finance.naver.com/item/sise_day.nhn?code=005380&page=1" # 종목 A

url<-"http://finance.naver.com/item/sise_day.nhn?code=005930&page=1" # 종목B

#install.packages("httr")

library(httr)

referer <- add_headers(Referer = "http://finance.naver.com/item/sise_day.nhn?code=005380&page=11") #검색해서 들어간 것처럼 위장하기위해 header를 붙여준다

tmp <- GET(url, referer) # GET함수를 통해 해당 서버에 통신을 함 뒤에 referer인자가 위장술

ta<-read_html(tmp)%>% html_nodes(xpath = '/html/body/table[1]') %>% html_table()

ta2<-(ta[[1]])

ta2[-c(1,7,8,9,15),]

code_data <- read.csv("data.csv",sep="\t")

? read.csv

head(code_data)

code <- as.character(code_data[,1])

code_name <- as.character(code_data[,2])

re_code <- as.character(sapply(code,function(x){

nc<- 6-nchar(x)

paste0(c(rep(0,nc),x),collapse = "")

}))

k <- 1

i <- 1

for(k in 1:length(re_code)){

final_data<-NULL

for(i in 1:10){

url <- paste0("https://finance.naver.com/item/sise_day.nhn?code=",re_code[k],"&page=",i)

b <- htmltab(url,encoding="UTF-8")

b

final_data < -rbind(final_data,b)

cat("\n",i)

}

head(final_data)

tail(final_data)

dim(final_data)

..........

결과는 몇줄 가지도 못하고 바로

add_headers(Referer = "https://finance.naver.com/item/main.naver?code=005380")에서 다음과 같은 에러가 발생했습니다:
  함수 "add_headers"를 찾을 수 없습니다

로 나옵니다..

 

이 문제가 반드시 해결이 되야 밑에 코딩한게 전부 의미가 있을 것 같습니다.

r 웹-크롤링

回答 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

일신우일신님, htmltab 패키지가 CRAN에서 제거되어 직접 설치가 안되는 문제에 봉착하셨군요. htmltab 함수 대신 다른 방식으로 웹 페이지의 테이블 데이터를 수집해야 할 것 같습니다. 다행히 httr 패키지로 HTTP 요청을 보낼 수 있고, rvest 패키지를 이용해 HTML 문서를 파싱할 수 있습니다.

add_headers 함수는 httr 패키지에 포함된 함수이므로, 해당 패키지를 불러온 후 사용해야 합니다. library(httr)를 실행하셔야 하는데, 혹시 실행하지 않으셔서 함수를 찾을 수 없는 상황이 발생하지 않았는지 확인해 보세요.

다음은 httrrvest를 사용하여 네이버 금융에서 데이터를 수집하는 간략한 예시입니다:

library(httr)
library(rvest)

url <- "https://finance.naver.com/item/sise_day.nhn?code=005380&page=1"
referer <- add_headers(Referer = "https://finance.naver.com/item/sise_day.nhn?code=005380&page=11")
response <- GET(url, referer)
content <- read_html(response)

# XPath를 사용하여 테이블을 찾고 테이블 데이터를 추출합니다.
table <- content %>% html_nodes(xpath = '/html/body/table[1]') %>% html_table()

# 데이터 프레임 결과를 확인합니다.
stock_data <- table[[1]]
print(stock_data)

만약 library(httr) 실행 이후에도 여전히 같은 오류가 발생한다면 RStudio를 재시작하신 후 다시 시도해 보세요. 또한, 패키지 설치 상태를 확인하려면 installed.packages()를 실행하여 현재 설치된 패키지 목록을 확인하실 수 있습니다.

reg.get("http://www.naver.com")

0

28

2

크롤링, 영상을 따라해도 제미나에게 물어봐도 안되요

0

33

1

정규표현식 및 여러 코드 꼭 외워야 하나요?

0

40

1

셀레니움 환경설정 오류

0

43

2

cufflinks 버전문제로 iplot() 미실행

0

44

2

네이버 로그인 관련

0

236

2

안녕하세요 셀레니움에 대해서 질문

0

82

1

[수정요청]직접 수집한 주가 데이터로 시각화해보기

0

52

2

pd.read_html(url, encoding='cp949') 에러

0

75

2

Live server 를 이용 해보고 싶은데 확장메뉴 설치가 막혀 있어요

0

62

2

'팀 단위 AI 업무 혁신' 자문 관련하여 문의드리고자 합니다. (연락처 요청)

0

38

1

크롤링 관련 질문

0

64

1

import requests from bs4 import BeatifulSoup 이 단계에서 안 되네요

0

76

2

크롤링 연습사이트 문의

0

93

2

requirements.txt. 업데이트 해주세요.

0

63

2

fdr.StockListing('KRX') 문제 발생

0

137

2

VS로 수강 중인 수강생

0

40

1

멜론 사이트 수집부터 안됩니다

0

56

1

강의 시점이랑 현재랑 네이버 사이트 변화가 많은거 같아서 질문드립니다.

0

54

1

문의하면 '사람'이 답변해주면 좋겠네요.

0

41

1

보내주신 링크 에러납니다

0

43

1

찾을 수 없고, 강사가 볼 수 있는 게시판도 찾기 어렵습니다

0

52

2

섹션 11/26강 수강 중 공유 파일

0

47

2

한국거래소에서 전종목 코드를 받는 기존 메뉴는 사라졌습니다.

0

469

1