【问题标题】:R : Create a loop for Twitter scraping with userTimelineR:使用 userTimeline 创建一个循环用于 Twitter 抓取
【发布时间】:2019-05-04 12:37:16
【问题描述】:

我想创建一个循环来获取来自 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)

【问题讨论】:

    标签: r twitter web-scraping


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我会在用户时间轴中编写一个使用 ma​​xID 参数的循环:

      代码

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

      然后将其放入某种循环并迭代,直到它什么都不返回。 当您只下载几千条推文时,速率限制应该不是问题。

      【讨论】:

        猜你喜欢
        • 2019-03-15
        • 2016-08-16
        • 2022-01-24
        • 2018-12-18
        • 1970-01-01
        • 2020-04-28
        • 2021-03-14
        • 1970-01-01
        • 2015-02-13
        相关资源
        最近更新 更多