R에 대해 아무것도 모르지만
다른 프로그래밍 언어에 대한 기초지식만 있어도
가능합니다
저도 구글링으로만 정보를 찾았습니다
설정
처음은 패키지 다운로드 입니다
1
|
install.packages("XML","stringr")
|
cs |
이렇게 하면 패키지 다운로드가 됩니다
R에서 패키지라고 하는 것은 다른 유저들이 만들어 놓은 것을 다운받아 쓰는 것인데
저는 부품이라고 할게요 부품이라고 하면 더 이해가 잘되는 느낌이라서 ㅎㅎ
1
2
|
library(XML)
library(stringr)
|
cs |
library는 앞에서 다운로드한 부품을 지금 사용하기 위해 가져오는 것입니다
예를 들어 게임에서 아이템을 장착한다는 느낌이죠
이제 필요한 설정은 다했습니다
url을 설정하는 코드입니다
1
2
|
all_reviews <- NULL
url_base <- "https://movie.naver.com/movie/bi/mi/pointWriteFormList.nhn?code=167651&type=after&onlyActualPointYn=N&order=newest&page="
|
cs |
위 url 네이버 서비스 종료로 크롤링 불가 합니다
all_reviews는 리뷰들을 저장할 곳으로 아무값도 안들어가 있는 NULL값을 설정합니다
여기서 다른 프로그래밍 언어는 = 대입연산자를 사용하는데 R은 <- 를 사용합니다
물론 = 연산자도 사용가능합니다 하지만 R에서는 <- 사용을 선호한다는 거 같아요
url_base에 들어가는 url은 네이버 영화평점 url입니다
이번에 크롤링하는 영화는 글을 작성하는 시간 기준으로 제일 예매율이 높은 영화인 '극한직업' 입니다
다른 영화를 하고 싶을경우 중간에 167651 숫자코드를 네이버에서 찾아서 원하는 영화 코드로 바꾸면 가능
실행
페이지를 읽는 코드입니다
1
2
3
4
5
6
7
8
9
10
11
|
for (i in 1:240) {
newr <- NULL
url <- paste(url_base, i, sep='')
txt <- readLines(url, encoding="UTF-8")
reviews <- txt[which(str_detect(txt, "class=\"score_reple\""))+1]
reviews <- gsub("<.+?>|\t","", reviews)
newr <- cbind(reviews)
all_reviews <- rbind(all_reviews, newr)
}
|
cs |
2번째 줄 newr은 한페이지 10개 리뷰를 저장하는 변수입니다
for 구문에서 1:240은 1부터 240까지 반복한다는 뜻인데
3번째 줄에 url 변수 안에 위에서 말했던 네이버 평점 url_base에 들어가 있는 주소 끝에
숫자를 1부터 240까지 반복할 것입니다
240페이지 X 한페이지에 리뷰 수는 10개 = 리뷰 2400개
크롤링이 정상작동이 되면 총 2400개의 리뷰를 가져올 수 있습니다
4번째 줄은 txt 변수에 url변수에 들어간 주소를 html 파일로 저장하는 부분
다음 6번째 줄은 html파일의 리뷰부분인 class="score_reple" 부분을 txt에 저장하는 내용
네이버에서 태그추가로 score_reple +1을 하면 바로 댓글내용이 안나와 오류가 나는거였습니다 아래로
들어가면 수정한 내용을 볼 수 있습니다
https://repl.it/@bolonge/r#main.r
7번째줄은 특수문자를 제거하는 부분입니다
네이버영화 말고 다른 것을 크롤링하고 싶다면 원하는 태그만 알면 되는데
원하는 태그를 보는 방법은 크롬에서는 F12를 누르면 위에 화면처럼 나타나는데 오른쪽에 화살표있는 부분을 클릭하고 원하는 부분에 마우스를 클릭하면 옆에 원하는 태그를 볼 수 있습니다
9번째 줄은 한페이지 10개리뷰를 newr에 저장하는 부분이고
10번째 줄은 all_reviews에 계속 10개 리뷰인 newr을 추가한다는 내용입니다
계속 추가를 하니까 10+10+10+....+10 를 240번 해서 2400개가 되는 것입니다
저장
마지막으로 저장하는 코드입니다
1
|
write.table(all_reviews, "C:\\Temp\\movie_review_Ext_J.txt")
|
cs |
Temp안에 movie_review_Ext_J.txt파일로 저장하겠다는 뜻입니다
실행하고 폴더에 가서 파일을 열어 확인해보겠습니다
제일 위에리뷰와 크롤링한 데이터가 일치하는 것을 확인합니다
스크롤을 맨 아래로 넘겨 총 2400개의 리뷰가 크롤링된 것을 확인할 수 있습니다
다음에는 크롤링한 데이터를 KoNLP 부품을 통한 분석과 워드클라우드를 만들어 보겠습니다
'프로그래밍 > R ' 카테고리의 다른 글
R을 이용한 텍스트 감성분석 | 영화리뷰 감성분석 해보기 (18) | 2019.02.13 |
---|---|
R KoNLP로 명사 추출, 명사로 워드클라우드 만들어보기 (2) | 2019.02.12 |
R [1]. 설치하기 (0) | 2019.01.09 |