简单的twitter流api访问
tweetstream的Python项目详细描述
简介
tweetstream提供了两个类samplestream和followstream,它们可以是 用于从twitter的流式api获取tweets。其中一个的实例 类可以用作迭代器。除了获取tweets之外, 对象跟踪收集的tweet的数量以及 收到推文。
samplestream提供了所有tweet的示例。Filterstream提供 符合一个或多个条件的推文。注意这是不可能的 获取所有无法访问“firehose”流的tweets 目前还不能向公众提供。
Twitter关于流媒体API的文档可以在这里找到: http://dev.twitter.com/pages/streaming_api_methods。
请注意api正在阻塞。如果由于某种原因数据不能立即 可用时,呼叫将被阻塞,直到有足够的数据产生tweet。
示例
打印传入的推讯:
>>> stream = tweetstream.SampleStream("username", "password") >>> for tweet in stream: ... print tweet
stream对象也可以用作上下文,在本例中 打印每个tweet的作者以及tweet计数和速率:
>>> with tweetstream.SampleStream("username", "password") as stream ... for tweet in stream: ... print "Got tweet from %-16s\t( tweet %d, rate %.1f tweets/sec)" % ( ... tweet["user"]["screen_name"], stream.count, stream.rate )
流对象可以引发connectionerror或authenticationerror异常:
>>> try: ... with tweetstream.TweetStream("username", "password") as stream ... for tweet in stream: ... print "Got tweet from %-16s\t( tweet %d, rate %.1f tweets/sec)" % ( ... tweet["user"]["screen_name"], stream.count, stream.rate ) ... except tweetstream.ConnectionError, e: ... print "Disconnected from twitter. Reason:", e.reason
要获取符合特定条件的tweets,请使用filterstream。过滤流 使用三个关键字参数:“locations”、“follow”和“track”。
位置是一个边界框列表,地理标记的tweets应该在其中发起。 参数应该是经纬度对的Iterable。
track指定要跟踪的关键字。这个论点应该是 串。
follow返回引用给定用户的状态。参数应该是iterable Twitter用户ID的。id是用户id int,而不是屏幕名称。
>>> words = ["opera", "firefox", "safari"] >>> people = [123,124,125] >>> locations = ["-122.75,36.8", "-121.75,37.8"] >>> with tweetstream.FilterStream("username", "password", track=words, ... follow=people, locations=locations) as stream ... for tweet in stream: ... print "Got interesting tweet:", tweet
不推荐的类
tweetstream用于包含类tweetstream、followstream、trackstream locationstream和重新连接tweetstream。当twitter 更改了其API端点。同样的功能现在在 samplestream和filterstream。当 使用,但将保持功能一段时间。
更改日志
请参见更改日志文件
联系人
作者是rune halvorsen<;runefh@gmail.com>;。项目位于 http://bitbucket.org/runeh/tweetstream。如果你发现了漏洞,或者有 请求,请在项目站点问题跟踪程序中报告它们。补丁是 也非常欢迎。
贡献者
- 符文halvorsen
- 克里斯托弗·席尔科克
许可证
此软件是根据New BSD License授权的。请参阅LICENCE 文件位于顶级分发目录中,以获取完整的许可证文本。