跟踪实时推文流中的关键字

2024-03-04

我安装并尝试了 tweepy,我现在正在使用以下功能:

from API参考 http://packages.python.org/tweepy/html/api.html#api-reference

API.public_timeline()

返回最近 20 个状态 设置了自定义用户图标的非受保护用户。公众 时间线缓存 60 秒,因此请求频率高于 这是对资源的浪费。

但是,我想从完整的直播流中提取与某个正则表达式匹配的所有推文。我可以把public_timeline()里面一个while True循环,但这可能会遇到速率限制的问题。不管怎样,我真的不认为它可以涵盖所有当前的推文。

怎么可能呢?如果不是所有推文,那么我想提取与某个关键字匹配的尽可能多的推文。


流媒体 API 就是您想要的。我使用一个名为 tweetstream 的库。这是我的基本监听功能:

def retrieve_tweets(numtweets=10, *args):
"""
This function optionally takes one or more arguments as keywords to filter tweets.
It iterates through tweets from the stream that meet the given criteria and sends them 
to the database population function on a per-instance basis, so as to avoid disaster 
if the stream is disconnected.

Both SampleStream and FilterStream methods access Twitter's stream of status elements.
For status element documentation, (including proper arguments for tweet['arg'] as seen
below) see https://dev.twitter.com/docs/api/1/get/statuses/show/%3Aid.
"""   
filters = []
for key in args:
    filters.append(str(key))
if len(filters) == 0:
    stream = tweetstream.SampleStream(username, password)  
else:
    stream = tweetstream.FilterStream(username, password, track=filters)
try:
    count = 0
    while count < numtweets:       
        for tweet in stream:
            # a check is needed on text as some "tweets" are actually just API operations
            # the language selection doesn't really work but it's better than nothing(?)
            if tweet.get('text') and tweet['user']['lang'] == 'en':   
                if tweet['retweet_count'] == 0:
                    # bundle up the features I want and send them to the db population function
                    bundle = (tweet['id'], tweet['user']['screen_name'], tweet['retweet_count'], tweet['text'])
                    db_initpop(bundle)
                    break
                else:
                    # a RT has a different structure.  This bundles the original tweet.  Getting  the
                    # retweets comes later, after the stream is de-accessed.
                    bundle = (tweet['retweeted_status']['id'], tweet['retweeted_status']['user']['screen_name'], \
                              tweet['retweet_count'], tweet['retweeted_status']['text'])
                    db_initpop(bundle)
                    break
        count += 1
except tweetstream.ConnectionError, e:
    print 'Disconnected from Twitter at '+time.strftime("%d %b %Y %H:%M:%S", time.localtime()) \
    +'.  Reason: ', e.reason

我有一段时间没看过了,但我很确定这个库只是访问示例流(而不是消防水带)。 HTH。

编辑添加:你说你想要“完整的直播”,又名消防水带。这在财政和技术上都是昂贵的,并且只有非常大的公司才被允许拥有它。查看文档,您会发现该示例基本上具有代表性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

跟踪实时推文流中的关键字 的相关文章

随机推荐

  • 是否可以仅使用 C++ 制作 iPhone 应用程序? [复制]

    这个问题在这里已经有答案了 可能的重复 在 iOS 和 Mac OS X 应用程序中使用 C https stackoverflow com questions 8759573 utilizing c in ios and mac os x
  • Miniconda3:在当前 win-32 通道中找不到软件包匹配问题

    我一直在遵循如何安装 Miniconda3 并使用它来安装不同软件包的指南NumPy and SciPy 然而 安装 Miniconda3 并在 PyCharm 中打开一个新项目后 指南告诉我应该写 conda install numpy
  • C# 属性修改方法

    全部 也许我在谷歌上搜索得不够 但我找不到关于这个问题的任何例子 在 C 中是否可以创建一个自定义属性 该属性应用于类并修改其所有方法 例如 添加Console WriteLine Hello i m modified method 作为第
  • 如何仅在安装(而不是卸载)中执行自定义操作

    我确信这相当容易 但我有点困难 我有一个自定义操作 可以在安装时执行不同的 非 msi 安装程序 不幸的是 我注意到它还在卸载时执行安装程序 我已经查看了这些选项 但我似乎无法找到如何阻止这种情况 如果有人能帮助我 我将非常感激 另外 如何
  • SWI-Prolog 中的可逆谓词和字符串

    append 3是一个非常强大的谓词 假设我想要一个以相同方式工作但针对 SWI Prolog 字符串的谓词 我看到的最简单的方法是将这些字符串转换为列表string codes 2 然后应用append 3 然后使用string code
  • Pandoc md 到 pdf:在分页之前插入图像时保持顺序

    正如标题所述 我的问题是关于 pandocs md 到 pdf 的 当我像这样转换降价时 Title text that is about a 3 4 page image that is too large to fit page ima
  • 关于 GWT 中 MVP 的问题。 (总体概述)

    你们中的任何人都可以对 MVP 模式在 GWT 应用程序中的使用给出一个很好的解释吗 我看过的任何示例 我发现很难理解实现该模式的概念 诸如这是什么之类的问题 它实现了什么 它是如何实施的 以及如何扩展它以适应未来的修改 http code
  • 如何在javascript中获取所有待处理的http请求?

    javascript 或 angular2 有没有办法 获取待处理的 http 请求列表 目标是启动 其他几个进程 根据这个榜单的波动 是否存在类似可访问的请求堆栈之类的东西 Thanks 事实上你可以扩展Http类来拦截请求执行 impo
  • 有没有更干净的方法来可靠地使用 write() 函数?

    我读了man页 我的理解是 如果write 失败并设置errno to EAGAIN or EINTR 我可以执行write 再次 所以我想出了以下代码 ret 0 while ret count write count write con
  • 如何使用 PHP 在网站上实现 OCR? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 'NSInvalidArgumentException',原因:'*** -[NSURL initFileURLWithPath:]: nil 字符串参数'

    我对这里发生的事情感到摸不着头脑 打印插件不起作用 我正在尝试向应用程序添加打印机插件 映射 xml 并加载 html 文件后 我在 Xcode 中没有看到错误 但是 当我运行该应用程序时 它崩溃了并且日志状态如下 由于未捕获的异常而终止应
  • 我如何知道用户正在打字或粘贴?

    在我的 JSP 的文本字段中 我希望知道用户是在输入数据还是只是粘贴 我如何使用 javascript 来识别它 EDIT 根据安迪的回答 我知道如何去做 但仍然好奇那些人是如何编写 onpaste 事件的 Safari Chrome Fi
  • HTML onUnclick 处理程序? [复制]

    这个问题在这里已经有答案了 我想在单击输入字段时触发一个处理程序 并在取消选择输入字段时触发另一个处理程序 即 如果有人在字段之外单击 有办法做到这一点吗 点击处理程序非常简单
  • 自动在 bash 命令末尾添加一些内容

    我想知道如何在特定 bash 命令的末尾添加一些内容 而无需显式键入它 例如 我希望能够输入 mycommand argument 该行将提交为 mycommand argument 我知道如何在我的中设置别名 bashrc e g ali
  • 在 Mac 上启动 AVD(Android 虚拟设备)时 qemu-system-i386 意外退出(非法指令 4)

    我在 Mac Macbook Pro 2017 年 8 月 OSX 10 12 4 上安装了 Android Studio 然后启动 创建了一个 hello world 项目并创建了一个 AVD Android 虚拟设备 Nexus 5 来
  • CloudFront 签名 url 的最长过期时间是多少

    我正在使用 CloudFront 从中生成签名 URLdoc https docs aws amazon com AmazonCloudFront latest DeveloperGuide CFPrivateDistJavaDevelop
  • JAXB 如何推进 XMLStreamReader?

    我正在使用 JAXB 通过 XMLStreamReader 从非常大的 XML 文件中解组对象 如果我要解组的 XML 元素是分隔的 通过换行符甚至单个空格 则效果很好 如果我要解组的 XML 元素之间没有空格 那么我会丢失所有其他项目 X
  • Rust 编译器什么时候不能证明借用是不相交的?

    In 诺米康第 3 2 节 https doc rust lang org nomicon references html liveness 在 活跃度 标题下 它说 然而 经常出现的情况是 Rust 不够聪明 无法 证明多次借用是不相交的
  • std 映射复合键

    我有一个问题运算符std map 所需的方法 我使用结构作为复合键 如下所示 struct MyKey std string string1 std string string2 std string string3 unsigned in
  • 跟踪实时推文流中的关键字

    我安装并尝试了 tweepy 我现在正在使用以下功能 from API参考 http packages python org tweepy html api html api reference API public timeline 返回