R使用twitteR包在追随者列表中循环以获得自我网络
我试图根据一个给定用户跟踪的twitter账户的封闭列表,获取关于谁跟踪谁的网络数据。也就是说,给定一个用户A,我想检索它的朋友列表,然后了解它的朋友中谁相互跟踪 我遇到的第一个问题是Twitter API设置的速率限制,但似乎通过Sys.sleep()函数解决了这个问题。虽然速度很慢,但我使用了下面所示的函数,第一次它运行得很好。但是,我试图从其他用户的好友列表中获取相同的信息,它不断给我以下类型的错误:R使用twitteR包在追随者列表中循环以获得自我网络,r,twitter,R,Twitter,我试图根据一个给定用户跟踪的twitter账户的封闭列表,获取关于谁跟踪谁的网络数据。也就是说,给定一个用户A,我想检索它的朋友列表,然后了解它的朋友中谁相互跟踪 我遇到的第一个问题是Twitter API设置的速率限制,但似乎通过Sys.sleep()函数解决了这个问题。虽然速度很慢,但我使用了下面所示的函数,第一次它运行得很好。但是,我试图从其他用户的好友列表中获取相同的信息,它不断给我以下类型的错误: curl::curl\u fetch\u内存中出错(url,handle=handle
- curl::curl\u fetch\u内存中出错(url,handle=handle): 已达到超时
- 错误HTTP 503 以及其他错误。到目前为止,我已经在三台不同的笔记本电脑上试了三次,每次都有不同的错误。知道为什么会这样吗
friendsnet <- function(tuser) {
require(twitteR)
# if rate limit is hit, wait for 15 minutes
limit <- getCurRateLimitInfo()[53,3]
print(paste("Look up limit", limit))
if (limit == 0) {
print("sleeping for fifteen minutes")
Sys.sleep(900)
}
# Find user
tuser <- getUser(tuser)
print(tuser$screenName)
# Empty dataframe
df <- NULL
print("empty data frame")
# Get names of friends
f <- lookupUsers(tuser$getFriendIDs())
f.id <- sapply(f, id)
f.name <- sapply(f, screenName)
f2 <- as.data.frame(cbind(f.id, f.name))
print("list of friends")
print(head(f2))
for (i in f2$f.name) {
# if rate limit is hit, wait for 15 minutes
limit <- getCurRateLimitInfo()[53,3]
print(paste("Look up limit", limit))
if (limit == 0) {
print("sleeping for fifteen minutes")
Sys.sleep(900)
}
A <- getUser(i)
friends.object <- lookupUsers(A$getFriendIDs())
# Convert list into data frame
friends.id <- sapply(friends.object,id)
friends.name <- sapply(friends.object, screenName)
friends <- as.data.frame(cbind(friends.id, friends.name))
for (j in f2$f.name) {
if (i != j) {
if ((j %in% friends$friends.name) == TRUE) {
print(paste(i, "follows", j))
df <- rbind(df, data.frame(i, j))
}
}
}
}
return(df)
}
friendsnet代码似乎是正确的。它有时起作用,尽管速度非常慢。可能与Internet连接相同错误有关。这对我不起作用。代码似乎是正确的。它有时起作用,尽管速度非常慢。可能与Internet连接相同错误有关。这对我不起作用。