gpt4 book ai didi

用于数据挖掘的 JSON 到 R

转载 作者:行者123 更新时间:2023-12-02 05:17:53 26 4
gpt4 key购买 nike

我正在尝试使用 Topsy Otter API 抓取推文,这样我就可以在我的论文中对其进行一些数据挖掘。

到目前为止,我有:

library(RJSONIO)
library(RCurl)
tweet_data <- getURL("http://otter.topsy.com/search.json?q=PSN&mintime=1301634000&perpage=10&maxtime=1304226000&apikey=xxx")
fromJSON(tweet_data)

效果很好。但是现在,我只想返回此文件的一些详细信息,即“内容”和“trackback_date”。我似乎无法弄清楚如何 - 我曾尝试将几个示例拼凑在一起,但无法提取我想要的内容。

到目前为止,这是我尝试过的:

trackback_date <- lapply(tweet_data$result, function(x){x$trackback_date})

content <- lapply(tweet_data$result, function(x){x$content})

非常感谢任何帮助,谢谢。

编辑我也试过:

library("rjson")
# use rjson

tweet_data <- fromJSON(paste(readLines("http://otter.topsy.com/search.json?q=PSN&mintime=1301634000&perpage=10&maxtime=1304226000&apikey=xxx"), collapse=""))
# get a data from Topsy Otter API
# convert JSON data into R object using fromJSON()

trackback_date <- lapply(tweet_data$result, function(x){x$trackback_date})

content <- lapply(tweet_data$result, function(x){x$content})

最佳答案

Topsy Otter API 响应的基本处理:

library(RJSONIO)
library(RCurl)
tweet_data <- getURL("http://otter.topsy.com/search.json?q=PSN&mintime=1301634000&perpage=10&maxtime=1304226000&apikey=xxx")

#
# Addition to your code
#
tweets <- fromJSON(tweet_data)$response$list
content <- sapply(tweets, function(x) x$content)
trackback_date <- sapply(tweets, function(x) x$trackback_date)

编辑:处理多个页面

函数从指定的页面获取100个项目:

pagetweets <- function(page){
url <- paste("http://otter.topsy.com/search.json?q=PSN&mintime=1301634000&page=",page,
"&perpage=100&maxtime=1304226000&apikey=xxx",
collapse="", sep="")
tweet_data <- getURL(url)
fromJSON(tweet_data)$response$list
}

现在我们可以将它应用于多个页面:

tweets <- unlist(lapply(1:10, pagetweets), recursive=F)

然后,瞧,这段代码:

content <- sapply(tweets, function(x) x$content)
trackback_date <- sapply(tweets, function(x) x$trackback_date)

返回 1000 条记录。

关于用于数据挖掘的 JSON 到 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14345701/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com