我收到以下错误消息,此代码旨在将Instagram帖子读入r。其他代码在前20个帖子中成功阅读,但Instagram希望您请求“next_url”以获得更多帖子。我查看了这个错误的类似答案,但在我的代码中找不到拼写错误。想知道它是否可能来自需要调整的API。我是R的新手,希望我能适当地解释一下。我非常感谢任何帮助。
Error in fromJSON(getURL(paste(next_url, token, sep = "")), unexpected.escape = "keep") : unexpected character: p In addition: Warning message: In fromJSON(getURL(paste(next_url, token, sep = "")), unexpected.escape = "keep") : unexpected escaped character '\ ' at pos 26. Keeping value.
username <- "XXXX"
if(grepl(received_profile$username,username))
{
user_id <- received_profile$id
media <- fromJSON(getURL(paste(next_url,token,sep="")),unexpected.escape = "keep")
df1 = data.frame(no = 1:length(media$data))
for(i in 1:length(media$data))
{
#comments
df1$comments[i] <-media$data[[i]]$comments$count
#likes:
df1$likes[i] <- media$data[[i]]$likes$count
#date
df1$date[i] <- toString(as.POSIXct(as.numeric(media$data[[i]]$created_time), origin="1970-01-01"))
}
df <- rbind(df, df1)
}else
{
print("Error: User not found!")
}
答案 0 :(得分:6)
我可以通过使用从Instagram返回的JSON响应中的next_url
对象中提取pagination
的代码扩展您的代码段来重现您的问题。
使用rjson::fromJSON
解析JSON响应时,我会收到类似
Error in rjson::fromJSON(js) : unexpected character: i
但是,使用RJSONIO::fromJSON
解析完全相同的字符串工作正常!此字符串还使用在线JSON验证器验证为正确的JSON。
这强烈指出rjson::fromJSON
中的错误。您现在可能想要使用RJSONIO包。
不幸的是,这些Instagram的回复非常大。我将看看我是否可以将JSON输出删除为可管理的内容,以便我可以在此处发布详细信息。 (我试图避免链接到外部网站上的数据。)
我怀疑Instagram用户名存在编码问题。
答案 1 :(得分:0)
使用RJSONSIO和Rcpp,你应该能够得到你想要的东西:
media1 <- fromJSON(getURL(paste(url,token,sep="")
next_url <- media1$pagination[1]
media2 <- fromJSON(getURL(next_url))
无需在fromJSON()
中指定其他参数