R:使用userTimeline为Twitter抓取创建一个循环

时间:2015-03-25 20:06:45

标签: r twitter web-scraping

我想创建一个循环来获取来自2个Twitter用户(@Better_Together和@YesScotland)的所有推文。即使我选择了3200条推文,这是根据此错误消息的限制:

In statusBase(cmd, params, n, 3200, ...) : statuses/user_timeline has a cap of 3200 statuses, clipping ) 

我似乎无法获得超过40条推文。

我想获得这两个帐户的所有+ - 5000条推文。我认为创建循环将是解决方案。有人可以帮忙吗?

 UK_Together.list <- userTimeline('UK_Together', n=3200)  
 UK_Together.df = twListToDF(UK_Together.list) 
 UK_Together.df$text <- sapply(UK_Together.df$text,function(row) iconv(row, "latin1", "ASCII", sub=""))
 write.csv(UK_Together.df, file='UK_TogetherTweets.csv', row.names=F)

 YesScotland.list <- userTimeline('YesScotland', n=3200)  
 YesScotland.df = twListToDF(YesScotland.list) 
 YesScotland.df$text <- sapply(YesScotland.df$text,function(row) iconv(row, "latin1", "ASCII", sub=""))
 write.csv(YesScotland.df, file='YesScotlandTweets.csv', row.names=F)

2 个答案:

答案 0 :(得分:1)

我可能会写一个for循环并添加一条Sys.sleep行,它会暂停你的循环足够长的时间以防止速率限制

答案 1 :(得分:0)

我要编写一个循环,该循环使用用户时间轴中的 maxID 参数:

代码

userTimeline("user", n=3200, maxID = min(as.numeric(user_timeline_df$id)))

然后将其放入某种循环中并进行迭代,直到不返回任何内容。 仅下载几千条推文时,速率限制就不会成为问题。