首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >要提高推特的挖掘速度吗?

要提高推特的挖掘速度吗?
EN

Stack Overflow用户
提问于 2017-01-16 20:45:58
回答 1查看 710关注 0票数 0

我正在进行一次tweepy采矿作业,但注意到要花相当长的时间才能获得大量的tweet。粗略估计,在3-4小时内将有3000条推特--我的目标是两天内达到100万条。类似的查询表明,它可能“只是你的机器”,但我希望得到一个更具体的答案。

如果我使用一些先进的服务器冲洗服务,我能加快速度吗?对不起,没有计算机科学背景。下面是我的代码:

代码语言:javascript
复制
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'])

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-17 21:42:55

您使用的是Stream函数,因此假设您得到的是带有hashtag #愉快的实时tweet。获取数据的速度也取决于目前有多少人在推特上使用这个标签。

如果我能很好地理解你的问题,你会得到一些分析的推文。如果是的话,我认为你可以使用旧的推文。

要做到这一点,您可以遵循两种不同的方法:

  1. 使用tweepy (不是流)
  2. 使用GetOldTweets python

我建议你使用第二种方式,因为它允许你在没有利率限制的情况下获得推特。

下面是一个使用GetOldTweets python库执行您在问题中试图做的事情的示例:

代码语言:javascript
复制
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条带有# With标签的tweet。

这里,您可以找到一个完整的、实用的示例。

请随时与我联系澄清。

让我知道。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41684729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档