【问题标题】:Retrieving Twitter data on the fly即时检索 Twitter 数据
【发布时间】:2013-04-24 15:47:55
【问题描述】:

我们公司正在尝试读取随机用户输入的所有实时数据流,即随机用户发送一条说“ABC公司”的推文。

看到如何使用 twitter 客户端搜索所述文本,我假设可以在不使用客户端的情况下聚合所有发送推文的推文,即归档、实时流式传输而不使用主题标签.

最好的方法是什么?如果你以前做过这个,你能分享你的脚本吗?我认为最简单的方法是通过运行 ruby​​/python 脚本,但我对 ruby​​/python 的理解充其量是有限的。

请帮忙?

【问题讨论】:

    标签: python ruby curl twitter


    【解决方案1】:

    这是最低限度的:

    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import twitter
    from threading import *
    from os import _exit, urandom
    from time import sleep
    from logger import *
    import unicodedata
    
    ## Based on: https://github.com/sixohsix/twitter
    
    class twitt(Thread):
        def __init__(self, tags = None, *args, **kwargs):
            self.consumer_key = '...' 
            self.consumer_secret = '...'
            self.access_key = '...'
            self.access_secret = '...'
    
            self.encoding = 'iso-8859-15'
    
            self.args = args
            self.kwargs = kwargs
    
            self.searchapi = twitter.Twitter(domain="search.twitter.com").search
    
            Thread.__init__(self)
            self.start()
    
        def search(self, tag):
            try:
                return self.searchapi(q=tag)['results']
            except:
                return {}
    
        def run(self):
            while 1:
                sleep(3)
    

    要使用它,请执行以下操作:

    if __name__ == "__main__":
        t = twitt()
        print t.search('#DHSupport')
        t.alive = False
    

    注意:这是线程化的唯一原因是因为它只是我为其他项目准备的一段代码,它让您了解如何使用 API 并可能构建一个后台服务来获取 twitter 上的搜索结果. 我的原始代码中有很多废话,所以结构可能看起来有点奇怪。 请注意,您实际上并不需要 consumer_keys 等来进行搜索,但您需要 OAuth 登录才能获得更多功能,例如发布或检查消息。

    你真正需要的只有两件事:

    import twitter
    print twitter.Twitter(domain="search.twitter.com").search(q='#hashtag')['results']
    

    【讨论】:

    • 我已经剥离了我在几个项目中使用的自己的代码的工作副本。然而,它涉及大量加密/解密数据、发布、通过 OAuth 登录等。所以这是查询#tags 的最低要求:)
    • 这似乎不起作用。AttributeError: 'twitt' object has no attribute 'alive'
    • @DustinCurtis 你安装了上面提到的模块吗? github.com/sixohsix/twitter
    • 在我的 iMac 上做了一个 sudo easy_install twitter。我假设它是同一个?
    • Thread.__init__(self) 之前缺少一个self.alive = True
    猜你喜欢
    • 1970-01-01
    • 2013-07-07
    • 2014-12-29
    • 2022-07-28
    • 2019-10-02
    • 2015-04-23
    • 2015-04-09
    • 2014-12-25
    • 1970-01-01
    相关资源
    最近更新 更多