html_table()과 invalid multibyte string
library(rvest)
rvest 패키지는 웹크롤링에 요긴하게 쓰인다.
그런데 이 패키지로 한글 표를 크롤링할 때에는 알려진 문제가 있다.
http://fow.kr/find/af23c4ee03bd666 의 데이터를 크롤링해보자.
url='http://fow.kr/find/af23c4ee03bd666'
html=read_html(url,encoding='UTF-8')
table=html %>% html_nodes(".tablesorter") %>% html_table()
윈도우에서 invalid multibyte string 오류가 발생한다. 이를 해결하기 위해 locale를 잠깐 변경하거나(Sys.setlocale(“LC_ALL”, “English”)), RCurl::getURL()와 XML::readHTMLTable()을 권유하기도 한다. 하지만 RStudio에서는 RStudio를 사용하는 도중에 locale을 변경하지 말라고 권유하고 있다.
여기서는 좀 더 간단한 방법을 제시한다.
url='http://fow.kr/find/af23c4ee03bd666'
html=read_html(url,encoding='UTF-8')
html_lol %>%
html_nodes(".tablesorter") %>%
html_table(convert =FALSE) %>%
lapply(readr::type_convert)
핵심은 html_table() 함수에 매개변수 convert를 FALSE로 설정하는 것이다. 생각보다 쉽고 간단하다!
참고 자료
- https://protect0.tistory.com/7
- http://lumiamitie.github.io/r_tutorial/datadesigner_2/03_web_scraping.html
부분출처> R로 하는 빅데이터 분석: 데이터 전처리와 시각화
Leave a comment