R语言—评论的处理
对于现在这个数据的时代,数据的类型并不像以前以数值化为主这般单一,现在不同的网站、App都充斥着文本的数据,而这些文本数据的背后,更是代表了用户背后的情感信息,忽略了这些数据,可能会导致错失机会。比如我们在淘宝店中可以看到用户对产品的评价,由于各个人的意见都褒贬不一,所以就有使用情感分析去判断舆论的走势。下面就简单介绍一下分析的思路和过程:
一、数据的准备
首先我选择从天猫网上随便选一个产品网页,该页面中包含对该产品的用户评价,我们的首要任务就是将其爬取下来。现在的网页如下:戴尔电脑
评论信息如上截图,我们也发现所有的评论不在同一页面,每次抓取完一页的数据,就需要点击下一页,再抓取当前页面的评论数据。让我们用代码帮助我们完成点击下一页的动作,这样就可以大大提升我们抓取的效率:
# 网页url
url = 'https://detail.tmall.com/item.htm?id=589583463316&ali_refid=a3_430676_1006:1102672698:N:FKL6p+C5FWFe
PDRN++UfYbwTjZ9raDfZ:60c2645a6e0a04068b3416315863aa21&ali_trackid=1_60c2645a6e0a04068b3416315863aa21&spm=a231o.
7712113/g.1004.1&sku_properties=5919063:6536025'
library(RSelenium)
remDr <-remoteDriver(
browserName = "chrome",
remoteServerAddr = "localhost",
port = 4444L
)
remDr$open()
remDr$navigate(url)
library(rvest)
#抓取页的评论
review = remDr$getPageSource()[[1]]%>%read_html()%>%html_nodes(css ='div.tm-rate-fulltxt' )%>%html_text()
#循环抓取
i=2
while(i<11){
#定位每一页的"下一页"按钮的元素位置
A = as.character(paste0("//div[@class = 'rate-paginator']/a[@data-page='",i,"']"))
btn = remDr$findElement(using = 'xpath',value = A)
#点击当前元素
btn$clickElement()
#抓取当前页面的评论信息
rev = remDr$getPageSource()[[1]]%>%read_html()%>%html_nodes(css='div.tm-rate-fulltxt' )%>%html_text()
review = c(review,rev)
i=i+1
}
相关文章