我是R的新手并试图抓一个网站。该网站包含许多产品及其价格。当我刮掉这个时,不知何故,价格的数量超过了产品的数量。
library(rvest)
url <- 'https://website'
webpage <- read_html(url)
SKU_data <- html_nodes(webpage,'.title') %>% html_text()
Price_data <- html_nodes(webpage,'.price') %>% html_text()
res <- data.frame(SKU_data,Price_data)
执行时我收到错误
data.frame(SKU_data,Price_data)中的错误: 参数意味着不同的行数:511,521
网站上的产品数量是511,但有521个价格。我该如何解决这个问题?
答案 0 :(得分:0)
不同长度的原因是网站为某些产品提供了多种价格。你想要最低的一个,对吧?最低价格包含在<span style="position:relative;">3 486,-<span class="grn">грн.</span></span>
的元素中。使用Xpath,您可以提取:
SKU_data <- html_nodes(webpage,'.title') %>% html_text()
price_xpath <- "//span[contains(@style, 'position:relative')]"
Price_data <- html_nodes(webpage, xpath = price_xpath) %>%
html_text()
res <- data.frame(SKU_data, Price_data)
head(res)
# SKU_data Price_data
# 1 Кресло Чинция Пластик Неаполь N-20 1 699,-грн.
# 2 Стул Луиза хром Неаполь N-20 479,-грн.
# 3 OM-100 Стол письменный (1350х600х750мм) бук/бук 659,-грн.