R语言爬取京东商品评论
时间: 2023-07-10 11:09:09 浏览: 163
要在R语言中爬取京东商品评论,可以使用以下步骤:
1. 安装并加载必要的包:`rvest`、`xml2`、`httr`、`jsonlite`。
```
install.packages(c("rvest", "xml2", "httr", "jsonlite"))
library(rvest)
library(xml2)
library(httr)
library(jsonlite)
```
2. 获取商品页面的HTML代码。
```
prod_url <- "https://item.jd.com/123456.html"
prod_html <- GET(prod_url) %>% content(as = "text")
```
其中 `123456` 应该替换为你要爬取的商品的ID。
3. 使用 `rvest` 包解析HTML代码,获取商品名称、价格和评论总数等信息。
```
prod_page <- read_html(prod_html)
# 商品名称
prod_name <- prod_page %>%
html_nodes(".sku-name") %>%
html_text(trim = TRUE)
# 商品价格
prod_price <- prod_page %>%
html_nodes(".p-price .price") %>%
html_text(trim = TRUE)
# 评论总数
comments_count <- prod_page %>%
html_nodes(".comment-count") %>%
html_text(trim = TRUE) %>%
gsub("[\\(\\)]", "", .) %>%
as.integer()
```
4. 构造请求URL,获取评论数据。
```
# 获取前10页评论数据
comments_url <- "https://sclub.jd.com/comment/productPageComments.action?productId=123456&score=0&sortType=5&page="
comments_pages <- lapply(1:10, function(i) {
GET(paste0(comments_url, i)) %>% content(as = "text")
})
# 解析JSON数据
comments <- lapply(comments_pages, function(page) {
fromJSON(page)$comments
})
```
其中 `123456` 应该替换为你要爬取的商品的ID。
5. 将评论数据转换成数据框。
```
comments_df <- data.frame(
user_name = sapply(comments, function(x) x$userNickname),
user_level = sapply(comments, function(x) x$userLevelName),
comment_time = sapply(comments, function(x) x$creationTime),
comment_content = sapply(comments, function(x) x$content)
)
```
现在,你就可以使用这些数据进行分析和可视化了。
阅读全文