如何播放前5条推文?以及如何只传输那些启用了地理信息和真实姓名的用户?

时间:2014-09-08 21:12:13

标签: python-2.7 twitter tweepy twitter-streaming-api

我正在尝试使用tweepy来传输一些特定数据,我阅读了tweepy文档,但没有帮助。我想做以下事情:

  1. 仅打印前5条推文,然后停止脚本。我试过了 使用“for”循环,但它保持流式传输。
  2. 我想仅针对特定主题(即:汽车)传输那些推文 推特用户i)已启用地理信息和ii)使用 真实姓名作为用户名。
  3. 导出并将流式推文附加到csv文件
  4. 我将非常感谢任何关于如何学习或接近这一点的指示。

    from tweepy import Stream
    from tweepy import OAuthHandler
    from tweepy.streaming import StreamListener
    import sys
    
    ckey = ""
    csecret = ""
    atoken = ""
    asecret = ""
    
    class listener(StreamListener):
        def on_data(self, data):
            print data
            return True
        def on_error(self, status):
            print status
    
    counter = 0
    for counter in range (0, 5):
        counter += 1
        auth = OAuthHandler(ckey, csecret)
        auth.set_access_token(atoken, asecret)
        twitterStream = Stream(auth, listener())
        twitterStream.filter(track=["car"])
    

    编辑版:

    import tweepy
    import time
    
    ckey = ""
    csecret = ""
    atoken = ""
    asecret = ""
    
    OAUTH_KEYS = {'consumer_key':ckey, 'consumer_secret':csecret,
        'access_token_key':atoken, 'access_token_secret':asecret}
    auth = tweepy.OAuthHandler(OAUTH_KEYS['consumer_key'], OAUTH_KEYS['consumer_secret'])
    api = tweepy.API(auth)
    
    for tweet in tweepy.Cursor(api.search, q='car', since='2014-09-01', until='2014-09-02').items(5):
        if tweet.geo != None:
            print tweet.geo, tweet.author.screen_name
    

1 个答案:

答案 0 :(得分:0)

这是我使用的脚本。在我看来,比你的更简单。 我不确定有人可以使用他们的名字作为用户名,不知道他们的名字是否没有空格?

您可以使用"项目"来限制推文。在检索推文之前。如果你想要前5个,你将无法事先知道有多少人添加了他们的位置,所以我可能会得到超过5条推文以防万一。 如果您不想限制推文的数量,请将项目留空。

import tweepy
import time
OAUTH_KEYS = { 'consumer_key':your key, 'consumer_secret':your secret, 'access_token_key':your token, 'access_token_secret':your token secret }
auth = tweepy.OAuthHandler(OAUTH_KEYS['consumer_key'], OAUTH_KEYS['consumer_secret'])
auth.set_access_token(OAUTH_KEYS['access_token_key'], OAUTH_KEYS['access_token_secret'])
api = tweepy.API(auth)

for tweet in tweepy.Cursor(api.search,q='car', since='2014-09-01', until='2014-09-02').items(5):
if tweet.geo != None:
    print tweet.geo, tweet.author.screen_name

您可以轻松找到有关如何附加到csv的文档。