无论如何要提高twitter挖掘速度?

时间:2017-01-16 20:45:58

标签: python twitter tweepy

我正在进行一项微妙的挖掘操作,但发现获取大量推文需要相当长的时间。粗略的估计是在大约3-4小时内发送3000条推文 - 我的目标是在两天内达到100万条。类似的问题表明它可能只是你的机器,"但我希望得到一个更具体的答案。

如果我使用一些高级服务器软管服务,我能加快速度吗?对不起,没有计算机科学背景。以下是我的代码:

from tweepy import Stream
from tweepy.streaming import StreamListener

class MyListener(StreamListener):

def on_data(self, data):
    try:
        with open('python2.json', 'a') as f:
            f.write(data)
            return True
    except BaseException as e:
        print(Error)
    return True

def on_error(self, status):
    print(status)
    return True

twitter_stream = Stream(auth, MyListener())
twitter_stream.filter(track=['#happy'])

谢谢!

1 个答案:

答案 0 :(得分:1)

您正在使用Stream功能,所以假设您正在使用#happy标签获取实时推文。您可以快速获取数据还取决于目前有多少人使用此主题标签进行推文。
如果我从你的问题中理解得很好,那么你将获得一些分析的推文。如果是,我认为你可以使用旧推文。
为此,您可以采用两种不同的方式:

  1. 使用tweepy api(不是流媒体)
  2. 使用GetOldTweets-python
  3. 我建议您使用第二个,因为允许获取没有速率限制的推文。

    以下是一个示例,您可以使用GetOldTweets-python库在您的问题中尝试做的事情:

    tweetCriteria = got3.manager.TweetCriteria().setQuerySearch('#happy').setSince("2016-05-01").setMaxTweets(3000)
    tweets = got3.manager.TweetManager.getTweets(tweetCriteria)
    
    for idx, tweet in enumerate(tweets):
        data[idx] = tweet.text
    
    with open('python2.json', 'w') as outfile:
        json.dump(data, outfile, indent=4)
    

    使用此代码,我在0:02:58.617514中收到了3000条带有#happy标签的推文。

    Here,您可以找到一个完整且有效的示例。

    请随时与我联系以获得澄清。

    让我知道。