Как транслировать и сохранять публичные сообщения Facebook с помощью R?
Я пытаюсь транслировать и сохранять публичные сообщения через R. Я уже получил токен и произвел поиск. Это то, что я сделал.
требуют (RCurl)
требуют (rjson)
данные <- getURL (" https://graph.facebook.com/search?q=multishow&type=post&access_token=my_token")
Хорошо, персонаж "data" что-то нашел. Теперь, как я могу преобразовать этот символ "данных" в фрейм данных? И возможно ли передать этот поиск в течение определенного времени ожидания?
Благодарю.
ОБНОВИТЬ:
Хорошо, ребята, теперь я могу анализировать результаты JSON из Facebook, но я все еще застрял в том, чтобы правильно покрывать данные как фрейм data.frame и получать поток новых сообщений. Следуйте приведенному ниже коду:
library (RCurl)
library (rjson)
library (plyr)
data <- getURL("https://graph.facebook.com/search?q=my_query&type=post&access_token=my_token, cainfo="cacert.perm")
#JSON parser
parser <- newJSONParser()
parser$addData(data)
fb.data <- parser$getObject()
#JSON to data.frame
#sometimes it works direct from rjson
df <- data.frame(fromJSON(fb.data))
#sometimes it works only with plyr package
df <- do.call("rbind.fill", lapply(fb.data, as.data.frame))
В любом случае, я получаю data.frame с 1 или 2 наблюдениями и сотнями переменных. При последнем поиске я получил свое первое наблюдение с 42 переменными, второе с 13 переменными и так далее. Любая подсказка, как я могу справиться с этим?
1 ответ
Чтобы установить timeout
Вы можете найти опцию тайм-аута в общих настройках скручивания, как это
names(getCurlOptionsConstants())[grep('.*timeout*.',names(getCurlOptionsConstants()))]
Это дает мне 6 вариантов:
"timeout" "connecttimeout"
"dns.cache.timeout" "ftp.response.timeout"
"timeout.ms" "connecttimeout.ms"
Я не знаю, какой из них вы ищите, но я думаю, вы можете попробовать что-то вроде этого:
getURL(url,.opts = list(timeout = 10))