我正在尝试从亚马逊刮掉产品评级。我有一个csv包含来自亚马逊的数千个不同产品的网址...该程序运行但它跳过许多网址并返回" NA"。以下是代码:
require(RCurl)
require(XML)
require(dplyr)
require(stringr)
require(rvest)
file1 <- read.csv("amazon.csv", header = TRUE, sep = ",")
for(i in 1:nrow(file1)){
amazonlink <- as.character(file1$links[i])
amazonlink <- paste("http://www.amazon.in/dp/", amazonlink, sep = "")
amazonhtml <- read_html(amazonlink)
tryCatch({ file1[i, 2] <- amazonhtml %>% html_node("#averageCustomerReviewRating") %>% html_text() %>% as.character() },error=function(e){})
}
,文件amazon.csv包含1列,其中包含以下内容:
B0117H62QK B0104ZR8E6 B010NE3U2M B00MF2MV1W B00O0R02V6 B00PLXFIF8 B00LEG3BCI B00KKLFFFE B00MUESLHI B00Q2FTXAA B00LGMG942 B00N1WCMXC B00KQK94OW B00LM5E2K6 B00O4WJ560 B00GRKTH1U B00O8LV4DO B00Q2FPPAW B00H816B5W B00LFHRXC0 B00MF2MRLG B00NWDX3GU B00QK14G4E B00QIMF1SK B00MO4XQLU B00NLBBHW0 B00LGMDS14 B00NTWXV7A B00O4WJICQ B00LGMG27G B00O4WKWBW B00PW65G2E B00OM4YRV8 B00P156MH4 B00PLX18RA B00R4N3WKQ B00QC6MAA4 B00QC6JN7C B00R4N35DK B00Q818HZA B00R4N4Y3U B00SWFDP3Y B00RNZ0SX4 B00S7SO4Z4 B00R4N3DXC B00SVE9S00 B00T9N0Y9G B00SMRDETW B00T9N1MCE
这些只有50个,其中有1000个,所以对于更多链接,你可以复制链接并运行代码。
答案 0 :(得分:0)
我不知道这是否适用于您文件中的所有示例,但这至少是一个开始,如果您提供更多信息,我可以在其余部分捎带。
library(rvest)
amazon_rating<-read_html('http://www.amazon.in/dp/B0117H62QK')
gsub('.*\\(| .*','',
amazon_rating %>%
html_node('#merchant-info') %>%
html_text() %>%
as.character()
)
"4.3"