Поиск твиттеров в R - PullRequest
       4

Поиск твиттеров в R

5 голосов
/ 08 февраля 2012

Я бы хотел посмотреть профили подписчиков в Твиттере пользователя, используя R (подписчики> 100000). Хотя twitteR - отличный пакет, у него есть проблемы при работе с высокими уровнями фолловеров, так как необходимо реализовать режим сна, чтобы избежать превышения ограничений скорости. Я относительный новичок здесь, и мне было интересно, как можно пройти через объект идентификатора подписчика, вводя идентификаторы подписчика в пакетах по 100 (так как это максимум, который API-интерфейс Twitter может обрабатывать за один раз)?

Редактировать: код добавлен (Щебет) библиотека (plyr) maxTwitterIds = 100 время сна = 500 # сек

user<-getUser("[username]")
followers<-zz$getFollowerIDs()
ids_matrix = matrix(zz, nrow = maxTwitterIds, ncol = length(zz) / maxTwitterIds)
followers<-zz$getFollowerIDs()
#note: for smaller lists of followers it is possible to use the command "lookupUsers(zz)     at this point
foll<-getTwitterInfoForListIds = function(id_list) {
    return(lapply(id_list, 

names <- sapply(foll,name)
sn<sapply(foll,screenName)
id<-sapply(foll,id)
verified<-sapply(foll,erified)
created<-sapply(foll,created)
statuses<-sapply(foll,statusesCount)
follower<-sapply(foll,followersCount)
friends<-sapply(foll,friendsCount)
favorites<-sapply(foll,favoritesCount)
location<-sapply(foll,location)
url<-sapply(foll,url)
description<-sapply(foll,description)
last_status<-sapply(foll,lastStatus)))
}
alldata = alply(, 2, function(id_set) {
    info = getTwitterInfoForListIds(id_set)
    Sys.sleep(sleeptime)   
    return(info)
})

Ответы [ 2 ]

1 голос
/ 26 декабря 2018

Это также можно сделать, используя более новый пакет rtweet.

По примеру здесь: https://github.com/mkearney/rtweet

# Get followers 

# Retrieve a list of the accounts following a user.

## get user IDs of accounts following CNN 
cnn_flw <- get_followers("cnn", n = 75000)

# lookup data on those accounts 
cnn_flw_data <- lookup_users(cnn_flw$user_id) 

# Or if you really want ALL of their followers:
# how many total follows does cnn have? 
cnn <- lookup_users("cnn")
# get them all (this would take a little over 5 days) 
cnn_flw <- get_followers(   "cnn", n = cnn$followers_count, 
  retryonratelimit = TRUE )
0 голосов
/ 08 февраля 2012

Позвольте мне сначала сказать, что я не использовал пакет twitteR.Поэтому я могу предоставить вам только некоторый псевдокод, который расскажет вам, как это сделать.Это должно помочь вам начать.

library(plyr)

# Some constants
maxTwitterIds = 100
sleeptime = 1 # sec

# Get the id's of the twitter followers of person X    
ids = getTwitterFollowers("x") # I'll use ids = 1:1000
ids_matrix = matrix(ids, nrow = maxTwitterIds, 
                         ncol = length(ids) / maxTwitterIds)

getTwitterInfoForListIds = function(id_list) {
    return(lapply(id_list, getTwitterInfo))
}

# Find the information you need from each id
alldata = alply(ids_matrix, 2, function(id_set) {
    info = getTwitterInfoForListIds(id_set)
    Sys.sleep(sleeptime)   
    return(info)
})

Возможно, структура данных, которую вы получите, нуждается в некоторой полировке (это вложенный список), но без информации о том, что вы хотите извлечь из учетных записей Twitter, что сложносказать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...