2016-10-12 8 views
0

나는 1000 개 이상의 트위터 핸들 목록을 가지고 있으며 twitteR에서 getUser() 함수를 사용하고 있습니다. 꾸러미. 약 20 회 성공 후 빈 목록이 통과되었다는 오류가 발생합니다.R에서 트위터 API에서 사용자 세부 정보를 보내는 요청을 여러 번 처리하는 방법 오류가 발생하고 때때로 빈 목록이 반환됩니다.

누구든지 문제를 파악하는 데 도움을 줄 수 있습니까? 또한 내가 동일한 사용자를 개별적으로 요청하면 그 결과를 얻습니다.

오류는 다음과 같습니다

library(twitteR) 
#here twitter_dig_aud is the list of 1000 or more twitter handles 

twitter_data <- lookupUsers(twitter_dig_aud[start:end,]) 
twitter_data <- twListToDF(twitter_data) 
twitter_data <- subset(twitter_data, protected == FALSE) 
twitter_data <- data.frame(twitter_data$screenName) 

for(i in 1:nrow(twitter_data)){ 
    print(paste("Row number ", i , " of ", nrow(twitter_data))) 
    id <- twitter_data[i, 1] 
    print(as.vector(id)) 
    ab <- user_following(id) 
} 


    user_following <- function(id){ 
    #here at this level I am authenticating my twitter connection 
    library(twitteR) 
    folw_details <- getUser(id) 

    if(folw_details$getFriendsCount() == 0){ 
    return() 
    } else{ 
    #get followeres details 

    #i get error at this stage saying empty list passed to twListToDF 
    friends <- twListToDF(folw_details$getFriends()) 

    #Id <- id 
    friends <- friends$screenName 
    return(friends)   
    } 
    } 

이 제발 도와주세요 twListToDF에 전달 빈 목록이 시나리오에서 문제 것입니다. 팔로워 수 및 팔로 잉 수와 같은 다른 세부 사항을 신청할 때도 동일한 문제에 직면하고 있습니다.

+0

내가 트위터 API에 대해 잘 모른다 @symbolrush 노력 주셔서 감사합니다,하지만 난 우리가 API 제한으로 인한있어 다른 API와 비슷한 문제를 했어. Twitter API가 시간당 쿼리 수를 제한합니까? 그렇다면 약간의 지연을 삽입하는 데 도움이 될 수 있습니다. – symbolrush

+0

@ 심볼 보류 대답을 읽어주십시오. 고맙습니다. – surfer

답변

1

많은 것을 읽고 여러 가지 방법으로 시도해보고 마침내 뭔가를 발견했습니다. 15 분당 20-30 개의 쿼리 만 허용하는 트위터 API입니다.

그래서 프로그램이 15 분 동안 잠자기 상태가되어 이제는 정상적으로 작동합니다.

프로그램 잠자기 후 트위터 연결을 승인했습니다.

나는 다음과 같은 코드를 사용 :

print("Process sleeps for 15 mins due to twitter API security issues and then it will continue") 
    Sys.sleep(900) 
    authorise() 

예를하지만, 단점은 처리 속도가 매우 느린 것입니다.