Метод tweepy stream.filter () не работает должным образом - PullRequest
1 голос
/ 15 апреля 2010

У меня есть некоторые проблемы с твипи API.

Я просто пытаюсь написать небольшое приложение, которое получит мне поток статусов одного пользователя (или больше), но было бы неплохо начать с; -)

сейчас: мой код такой:

    def main():
       config = ConfigParser.ConfigParser()
       config.read('twitter.cfg')

       username = config.get('Twitter', 'username')
       password = config.get('Twitter', 'password') 
           listener = StreamWatcherListener()

       stream = tweepy.Stream(username, password, listener, timeout=None)
       stream.filter('132897940')

в StreamWatcherListener У меня есть метод "on_status", который печатает текст состояния, когда появляется новый (все, кажется, работает, когда я пытаюсь stream.sample () вместо stream.filter ())

данный идентификатор - мой тестовый счет, поэтому всякий раз, когда я пишу в твиттере, я должен получить какой-то ответ в консоли .... но ничего не происходит.

когда я пытаюсь

curl -d @following http://stream.twitter.com/1/statuses/filter.json -uAnyTwitterUser:Password

в терминале, как я мог найти в твиттер API, все работает нормально.

Так, может быть, я неправильно использую метод filter ()?

есть предложения?

-andy

Ответы [ 2 ]

7 голосов
/ 16 апреля 2010

Я сам это выяснил

методу stream.filter() нужен массив

так что мне пришлось кодировать

stream.filter(['1234567'])

et voilà

0 голосов
/ 22 июня 2017
class TweetListener(StreamListener):
    def on_status(self,status):           
        print "TWEET ARRIVED!!!"
        print "Tweet Text : %s" % status.text
        print "Author's name : %s" % status.author.screen_name
        print "Time of creation : %s" % status.created_at
        print "Source of Tweet : %s" % status.source    
        time.sleep(10)       
        return True

    def on_error(self, status):        
       print status
       if status == 420:
            print "Too soon reconnected, Exiting!!"
            return False
        sys.exit()

def search_tweets():
    twitterStream = Stream(connect().auth, TweetListener())        
    twitterStream.filter(track=['Cricket','Maths','Army','Sports'],languages = ["en"],async=True)

Здесь я использовал параметр async, он запускает каждый поток в отдельном потоке. Обратитесь к этой ссылке для документации или более подробной информации.

...