본문 바로가기
R-크롤링

네이버 스포츠 뉴스 제목 및 댓글 크롤링 (Rselenium)

by 미스터탁 2019. 4. 26.


library(RJSONIO) 

x<-0 
base_data2<-NULL 
for(x in 0:450){  ## 현재부터 450일 이전까지 뉴스 수집
dadate<-as.Date(Sys.time())-x  ## 날짜 
dadate2<-gsub("-","",dadate)

##1페이지
baseurl<-paste0("https://sports.news.naver.com/kbaseball/news/list.nhn?isphoto=N&type=popular&page=1&date=",dadate2) 

b<-readLines(baseurl,encoding="UTF-8") 
b2<-fromJSON(b) 

oid<-sapply(b2[[1]],function(x){x$oid}) 
aid<-sapply(b2[[1]],function(x){x$aid}) 
tit<-sapply(b2[[1]],function(x){x$title}) 

new_url<-paste0("https://sports.news.naver.com/kbaseball/news/read.nhn?oid=",oid,"&aid=",aid,"&m_view=1&sort=LIKE") 

##2페이지
baseurl<-paste0("https://sports.news.naver.com/kbaseball/news/list.nhn?isphoto=N&type=popular&page=2&date=",dadate2) 

b<-readLines(baseurl,encoding="UTF-8") 
b2<-fromJSON(b) 
oid2<-sapply(b2[[1]],function(x){x$oid}) 
aid2<-sapply(b2[[1]],function(x){x$aid}) 
tit2<-sapply(b2[[1]],function(x){x$title}) 

new_url2<-paste0("https://sports.news.naver.com/kbaseball/news/read.nhn?oid=",oid,"&aid=",aid,"&m_view=1&sort=LIKE") 

###title,url만 수집 
base_data<-cbind(c(tit,tit2),c(new_url,new_url2)) 

base_data2<-rbind(base_data2,base_data) 
cat("\n",x) 
} 
dim(base_data2) 
##데이터저장
write.csv(base_data2,"base_data.csv",row.names = F) 

news_url<-base_data2[,2] 
review_list<-list() 

###Selenium을 활용하여 댓글가져오기 
rD <- rsDriver(browser="fire",port=1003L) 
remDr <- rD[["client"]] 


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

remDr$navigate(news_url[k]) 

Sys.sleep(runif(1)+runif(1)+0.25) 

webElem <- remDr$findElement(using = 'css', "span.u_cbox_page_more") 
cat("\t","a0") 
webElem$clickElement()  ## 더보기 클릭
Sys.sleep(0.06) 
cat("\t","a") 
webElem <- remDr$findElement(using = 'css', "span.u_cbox_page_more") 
webElem$clickElement() ## 더보기 클릭
Sys.sleep(0.06) 
cat("\t","b0") 
webElem <- remDr$findElement(using = 'css', "div.u_cbox_content_wrap ul.u_cbox_list") 
rev<-webElem$getElementText() 
cat("\t","b") 
rev2<-unlist(str_split(unlist(rev),"\n")) 
review<-rev2[seq(3,length(rev2),by=12)] 
review_list[[k]]<-review 
if(k %% 500 ==0){ 
  save(review_list,file="review_list.RData") 
} 
cat("\n",k) 
} 

# rev2 

 

인프런 강의 할인 쿠폰 코드입니다.

R로 하는 웹 크롤링 - 입문편(할인쿠폰코드) 236-69fc51d93a53 
https://www.inflearn.com/course/R-crawling# 

R로 하는 웹 크롤링 - 실전편 (할인쿠폰코드) 237-55c672aeb038 
https://www.inflearn.com/course/R-crawling-2# 

R로 하는 텍스트마이닝 (Top keyword부터 감성분석까지) (할인쿠폰코드) 238-c86096730061 
https://www.inflearn.com/course/R-text-mining#


R로 무작정 해보는 data science (할인쿠폰코드) 310-c6164f3d9be9 
https://www.inflearn.com/course/R-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%82%AC%EC%9D%B4%EC%96%B8%EC%8A%A4-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EC%BD%94%EB%94%A9#

 

R로 무작정 해보는 data science - 인프런

R을 통해 무작정 datascience를 해보는 강의 입니다. 데이터를 불러오는 것부터 모델 구축 및 모델 성능 전략까지 한줄한줄 쳐보면서 배웁니다. 중급 데이터 분석 데이터 사이언스 R 데이터 분석 데이터 과학 온라인 강의 머신러닝 모델 구축 및 성능 향상까지 라이브 코딩으로 배우는 R 데이터 분석

www.inflearn.com

 

반응형

'R-크롤링' 카테고리의 다른 글

내 주변 카페리스트 수집하기  (0) 2019.12.12
오늘의 유머 크롤링 코드  (0) 2019.12.12
구글 앱 리뷰 크롤링  (1) 2018.04.08
네이버 TV캐스트 댓글 크롤링  (0) 2018.04.08
R기초크롤링코드  (0) 2018.04.04

댓글