如何在 Twitter 上搜索关键字

2024-01-01

我正在尝试构建一项服务,在持续监控的基础上为 Twitter 中的多个用户执行关键字搜索。似乎有 5 种不同的方法可以实现这一目标,但都有各自的缺点。我浏览了 Twitter 和 twitter4j 文档,找不到任何其他方法。

  1. 使用 Twitter REST API 执行搜索 (https://dev.twitter.com/docs/api/1/get/search)。这个 API 的结果是有限的:要求太多,你就会受到限制。我确实必须跟踪最后阅读的推文,这样我就不会重复结果。需要一个计时器来轮询流。如果有多个搜索词,则可以轻松进行多次调用。

  2. 搜索公共流方法(https://dev.twitter.com/docs/streaming-apis/streams/public)。虽然这对于持续搜索来说非常有用,但 Twitter 只允许每个帐户一个连接,并且可以传递到 Twitter 的术语数量也有限制。对于我的用例来说绝对不可能

  3. 尝试使用用户流进行过滤。我这样做了,但发现很难快速确定推文是来自搜索还是来自用户流。此外,Twitter 表示他们将限制每个 IP 地址的用户流数量,因此这种方法无法扩展。 (Twitter 一直在谈论名为 SiteStreams 的东西,但它是一个非常有限的测试版,没有任何文档,所以我不会考虑它)。

  4. 前往从 Twitter 购买整个 Firehose 的第三方(例如 Datasift)并在那里搜索 Twitter 流。这会变得昂贵——基本计划每月 3000 美元。 24/7 搜索单个单词的费用约为 45 美元/月)

我向社区提出的问题是“我是否已经用尽了所有可能性”?如果是,那么在我看来,#1——使用带有计时器的 REST API 并跟踪最后找到的内容是正确的方法。有人不同意吗?如果是这样,您能否向我指出可以帮助我解决此问题的文档(或库)。

谢谢大家


我整理了一个很好的 JS 小提琴,它应该可以回答您在处理 Twitter API 时的所有问题。该网络应用程序抓取趋势区域设置,并允许您深入了解趋势主题,然后查看其中的推文。

我还添加了一个标准的 Twitter 搜索提交框,因此以一种奇怪的方式,这是一个准系统的 Tweetdeck 客户端供您检查。另外,为了推动新 Jquery 库的适应,我使用了 1.91,它利用了新的 live.bind 单击事件语法。

Enjoy

http://jsfiddle.net/jdrefahl/5M3Gn/ http://jsfiddle.net/jdrefahl/5M3Gn/

function searchTwitter(query) {
$.ajax({
    url: 'http://search.twitter.com/search.json?' + jQuery.param(query),
    dataType: 'jsonp',
    success: function (data) {
        var tweets = $('#tweets');
        tweets.html('');
        for (res in data['results']) {
            tweets.append('<div>' + data['results'][res]['from_user'] + ' wrote: <p>' + data['results'][res]['text'] + '</p></div><br />');
        }
    }
});
}

$(document).ready(function () {

function getTrendsByID(id) {
    $.ajax({
        url: 'http://api.twitter.com/1/trends/' + id + '.json',
        dataType: 'jsonp',
        success: function (data) {
            $.each(data[0].trends, function (i) {
            });
        }
    });
};

function getLocales() {
    $.ajax({
        url: 'https://api.twitter.com/1/trends/available.json',
        dataType: 'jsonp',
        success: function (data) {
            var locales = $('ul#locales');
            locales.html('');
            $.each(data, function (i) {
                localeID[i] = data[i].woeid;
                $('ul#locales').append('<li>' + data[i].name + '</li>');
            });
        }
    });

};

function getTrends(id) {
    $.ajax({
        url: 'https://api.twitter.com/1/trends/' + id + '.json',
        dataType: 'jsonp',
        success: function (data) {
            var trends = $('ul#currentTrends');
            trends.html('');
            $.each(data[0].trends, function (i) {
                $('ul#currentTrends').append('<li>' + data[0].trends[i].name + '</li>');
            });
        }
    });
};

// Event Handlers
$(document).on("click", "#locales li", function () {
    var $this = $(this);
    var localesHdr = $('#currentTrendsCont h3');
    var tweets = $('#tweets');
    var trendsHdr = $('#tweetsCont h3');
    trendsHdr.html('');
    tweets.html('');
    localesHdr.html('');
    $('#currentTrendsCont h3').html($this.text());
    getTrends(localeID[$this.index()]);
});

$(document).on("click", "#currentTrends li", function () {
    var $this = $(this);
    var trendsHdr = $('#tweetsCont h3');
    trendsHdr.html('');
    $('#tweetsCont h3').html($this.text());
    var params = {
        q: $this.text(),
        rpp: 10
    };
    searchTwitter(params);
});

$('#submit').click(function () {
    var trendsHdr = $('#tweetsCont h3');
    var trends = $('#currentTrends');
    var local = $('#currentTrendsCont h3');
    local.html('');
    trendsHdr.html('');
    trends.html('');
    $('#tweetsCont h3').html('search query: '+$('#query').val());
    var params = {
        q: $('#query').val(),
        rpp: 10
    };
    searchTwitter(params);
});

// Globals
var localeID = new Array();

// Init!
getLocales();

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

如何在 Twitter 上搜索关键字 的相关文章

随机推荐

  • XSLT: 不起作用

    我的应用程序中有一个 servlet 过滤器 它拦截所有传入的请求 并尝试从传入的 XML 中去除空格 并将生成的 干净 XML 写入响应 我正在使用 XSLT 来实现这一点 请参阅下面的 XSLT
  • 从数据框中删除方括号[重复]

    这个问题在这里已经有答案了 我有以下数据帧格式的 adtaset 我需要从数据中删除方括号 我们该如何进行任何人都可以帮忙吗 From TO wrestle engage in a wrestling match write communi
  • QMap 支持自定义比较器函数吗?

    我找不到设置自定义比较器函数的方法QMap 就像我可以为std map the typename Compare std less lt Key gt 其模板参数的一部分 Does QMap有办法设置吗 没有记录 我认为这是一个错误 htt
  • Boost 测试不 init_unit_test_suite

    我运行这段代码 define BOOST TEST MAIN define BOOST TEST DYN LINK include
  • 一键安装 Ruby/Rails/SQLite?

    我习惯了一键安装本地环境MAMP http www mamp info en index html 是否有 Ruby 等效项 您可以下载并立即获得本地运行的最新版本的 Ruby Rails SQLite 我使用的是运行 Leopard 的
  • Android:选项卡不会用 Holo 主题填充父级?

    下面的代码创建一个包含 4 个选项卡的视图 使用默认主题 androidmanifest xml 中未定义主题 我得到第一个图像 其中选项卡均匀增长以填充可用空间 如果我将主题设置为android theme android style T
  • 非二进制字母表的霍夫曼树?

    对于生成的字母表不是二进制的情况 是否有霍夫曼编码树的简单概括 例如 如果我想通过以三进制写出一些文本来压缩它 我仍然可以为我写出的每个字符建立一个无前缀的编码系统 霍夫曼构造的直接概括 使用 k 叉树而不是二叉树 是否仍能正确有效地工作
  • Sonatype Nexus:如何使用 Amazon S3 作为 Maven 工件的存储?

    我有一个任务来检查如何使我们的内部 Nexus 安装 安装在 CentOs RHEL 上 将工件存储在 Amazon S3 云存储 或任何其他便宜的云存储 中 到目前为止 我只找到了一种解决方案 将 s3 安装为文件系统 例如使用 s3fs
  • 从笔尖实例化视图会引发错误

    我尝试按照此创建 IBDesignable UIView 子类 link http iphonedev tv blog 2014 12 15 create an ibdesignable uiview subclass with code
  • 如何在 Roboguice 中通过构造函数注入参数? [安卓]

    这个问题可能与这个问题完全相同使用 Guice 将参数传递给构造函数 https stackoverflow com questions 9237996 pass parameter to constructor with guice 不同
  • Xcode 无法编译为模拟器

    我刚刚通过 App Store 更新了 Xcode 4 5 这是我从 Apple 开发者帐户获得的先前版本 自更新以来 我无法将任何应用程序编译到模拟器中 我可以编译到设备上 例如我的iPhone 我收到的错误是 fatal error f
  • Flutter导航push()和pop(),填满堆栈?

    在 Flutter 中构建一个应用程序 我想使用导航抽屉并添加了一些 FlatButton 每一个FlatButton has an onPressed 我所做的方法Navigator push 移动到所需的页面 该页面工作得很好 我想知道
  • 在控制台上显示“更新文本”

    有没有办法在 python 中创建进度条或更新命令行百分比之类的东西 每次更新都比新行更可取 something that looks like this for n in range 10 print n 10 打印 r字符 回车 会将光
  • Java:仅从集合中选择提供类型的元素

    我有一个 B 类型和 C 类型元素的集合 它们都扩展了 A 我需要过滤该集合以仅获取 B 类型的元素 除了以下方法之外 还有什么办法可以做到这一点吗 for A a initCollection if a instanceof B newC
  • 从模型验证中排除字段

    假设我有一个追随者ViewModel public class PersonViewModel Required public String Email get set Required public String FirstName ge
  • 如何在Android中设置导航控制器?

    我正在使用以下活动布局fragment and a BottomNavigationView
  • 如何使用 JavaScript 转义包含换行符的 JSON 字符串?

    我必须形成一个 JSON 字符串 其中的值具有换行符 必须对其进行转义 然后使用 AJAX 调用进行发布 任何人都可以建议一种使用 JavaScript 转义字符串的方法吗 我没有使用 jQuery 获取您的 JSON 并 stringif
  • 如何从Python脚本代码可靠地检查刚刚创建的目录是否存在?

    当我在不存在的系统上运行以下代码时 AnewDir代码退出后 系统上会出现一个新目录 from subprocess import Popen PIPE from os path import isdir from time import
  • @[] 在 Objective C 中有什么用[重复]

    这个问题在这里已经有答案了 我见过 NSArray objectsToShare objects 当查看一些示例代码时 是什么意思 objects here NSArray objectsToShare objects 是相同的 NSArr
  • 如何在 Twitter 上搜索关键字

    我正在尝试构建一项服务 在持续监控的基础上为 Twitter 中的多个用户执行关键字搜索 似乎有 5 种不同的方法可以实现这一目标 但都有各自的缺点 我浏览了 Twitter 和 twitter4j 文档 找不到任何其他方法 使用 Twit