2012-06-10 17 views
6

तक पहुंचने के लिए ट्वीपी का उपयोग करके मुझे वर्तमान में ट्विटर के स्ट्रीमिंग एपीआई को सही तरीके से चलाने के लिए ट्वीड का उपयोग करने के लिए उदाहरण कोड प्राप्त करने में परेशानी हो रही है (गलती ... या कम से कम मैं इसे कैसे चलाने की उम्मीद करता हूं)। मैं गिटहब (लेबल संस्करण 1.9) और पायथन 2.7.1 से ट्वीपी के हालिया क्लोन का उपयोग कर रहा हूं। How to Capture Tweets in Real-time with Twitter's Streaming APIट्विटर के स्ट्रीमिंग एपीआई

  • एंड्रयू रॉबिन्सन के ब्लॉग:

    1. O'Rilley कोड जवाब:

      मैं ट्रैकिंग के लिए एक परीक्षण अवधि के रूप में "चहचहाना" का उपयोग कर तीन स्रोतों से उदाहरण कोड की कोशिश की है प्रत्येक मामले में, : Using Tweepy to access the Twitter Stream

    2. GitHub (जो, के रूप में एंड्रयू रॉबिन्सन किया है, आसानी से OAuth प्रमाणीकरण का समर्थन करने के लिए संशोधित किया जा सकता है) पर Tweepy उदाहरण भंडार: streamwatcher.py

    सभी तीन मामलों में मुझे एक ही परिणाम मिलता है: प्रमाणीकरण सफल है, कोई त्रुटि उत्पन्न नहीं होती है, और मुख्य प्रोग्राम लूप किसी भी समस्या को निष्पादित करता प्रतीत होता है। मैं नेटवर्क उपयोग कूद लगभग 200 केबी/एस तक देखता हूं, और अजगर प्रक्रिया लगभग 100% CPU उपयोग तक पहुंच जाती है, इसलिए मुझे लगता है कि डेटा प्राप्त किया जा रहा है। हालांकि, कंसोल के लिए कुछ भी आउटपुट नहीं है।

    मुझे संदेह है कि ट्वीपी स्ट्रीम स्ट्रीम कुछ कारणों से कस्टम कॉलबैक विधि को कॉल नहीं कर रहा है। मैंने आउटपुट उत्पादन के लिए प्रत्येक उदाहरण में कॉलबैक विधियों को फिर से लिखने का प्रयास किया है जब भी उन्हें बुलाया जाता है, जो इसकी पुष्टि करता है।

    # -*- coding: utf-8 -*- 
    
    import tweepy 
    
    consumer_key = '' 
    consumer_secret = '' 
    
    access_token_key = '' 
    access_token_secret = '' 
    
    auth1 = tweepy.OAuthHandler(consumer_key, consumer_secret) 
    auth1.set_access_token(access_token_key, access_token_secret) 
    
    class StreamListener(tweepy.StreamListener): 
        def on_status(self, tweet): 
         print 'Ran on_status' 
    
        def on_error(self, status_code): 
         print 'Error: ' + repr(status_code) 
         return False 
    
        def on_data(self, data): 
         print 'Ok, this is actually running' 
    
    
    l = StreamListener() 
    streamer = tweepy.Stream(auth=auth1, listener=l) 
    #setTerms = ['hello', 'goodbye', 'goodnight', 'good morning'] 
    setTerms = ['twitter'] 
    streamer.filter(track = setTerms) 
    

    क्या मैं गलत कर रहा हूँ: यह एंड्रयू रॉबिन्सन ब्लॉग प्रविष्टि के आधार पर परीक्षण कोड में से एक बहुत ही सरल सा (मेरे ऐप की कुंजी के साथ हटा दिया, निश्चित रूप से) क्या है?

  • उत्तर

    10

    मैं भी इस में पड़ गए और

    if delimited_string.strip().isdigit(): 
    

    यह Tweepy में एक ज्ञात मुद्दा/बग प्रतीत हो रहा है के लिए streaming.py में लाइन 160 बदलकर अपने स्थानीय चेकआउट पर यह तय - मुद्दों की जाँच की जाना चाहिए था वह सब डिबगिंग करने से पहले सूची :) -

    https://github.com/tweepy/tweepy/pull/173 https://github.com/tweepy/tweepy/pull/182

    +0

    धन्यवाद !!! एक जादू की तरह काम किया। इसके अलावा, गिटहब पर मुद्दों की सूची की जांच करने के सुझाव के लिए धन्यवाद - शायद यही मुझे वास्तव में जानने की जरूरत है ;-) –

    संबंधित मुद्दे