我正在进行一次tweepy采矿作业,但注意到要花相当长的时间才能获得大量的tweet。粗略估计,在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'])谢谢!
发布于 2017-01-17 21:42:55
您使用的是Stream函数,因此假设您得到的是带有hashtag #愉快的实时tweet。获取数据的速度也取决于目前有多少人在推特上使用这个标签。
如果我能很好地理解你的问题,你会得到一些分析的推文。如果是的话,我认为你可以使用旧的推文。
要做到这一点,您可以遵循两种不同的方法:
我建议你使用第二种方式,因为它允许你在没有利率限制的情况下获得推特。
下面是一个使用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条带有# With标签的tweet。
这里,您可以找到一个完整的、实用的示例。
请随时与我联系澄清。
让我知道。
https://stackoverflow.com/questions/41684729
复制相似问题