为什么我会收到此错误?这就是我如何调用流API.
import tweepyimport syscreds = Json.loads(open('credential.Json').read())tw_consumer_key = creds['tw_consumer_key']tw_consumer_secret = creds['tw_consumer_secret']tw_access_token = creds['tw_access_token']tw_access_token_secret = creds['tw_access_token_secret']try: auth = tweepy.OAuthHandler(tw_consumer_key,tw_consumer_secret) auth.set_access_token(tw_access_token,tw_access_token_secret) API = tweepy.API(auth)except Exception: service = None API = None # query termsQ = "Better"class CustomStreamListener(tweepy.StreamListener): def on_status(self,status): try: print "%s\n%s\n%s\n%s\n\n" % (status.text,status.author.screen_name,status.created_at,status.source,) except Exception,e: print >> sys.stderr,'Encountered Exception:',e pass def on_error(self,status_code): print >> sys.stderr,'Encountered error with status code:',status_code return True # Don't kill the stream def on_timeout(self): print >> sys.stderr,'Timeout...' return True # Don't kill the streamclass liveStream(webapp2.RequestHandler): def get(self): streaming_API = tweepy.streaming.Stream(auth,CustomStreamListener(),timeout=60) self.response.out.write(streaming_API.filter(track=Q))
可能由GAE引起的不允许套接字,我不知道如何应用查询术语来获取特定的过滤流式推文.这部分代码的目的是获取指定关键字的实时流.如果有其他方法,请指导.最佳答案在App Engine上,httplib连接(和urllib)将使用Google URL提取服务. URL Fetch service表示其他服务器(不是app引擎服务实例)执行请求并将响应返回给app引擎实例,而不是进程本身打开套接字.
我相信你注意到在GAE上运行的httplib变体没有提供用于设置超时的sock属性.但基本问题是无法获得流,在响应完成之前,您不会将任何结果返回到应用程序引擎中.我还没有测试它是如何失败的,但我希望你会从URL服务中获得DeadlineExceededError,因为Twitter不会关闭流响应.
目前没有替代方法可以在GAE上获取流.它可能适用于后端的出站套接字支持.套接字支持目前仅适用于测试人员.
总结以上是内存溢出为你收集整理的python – GAE上的Twitter流媒体全部内容,希望文章能够帮你解决python – GAE上的Twitter流媒体所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)