twitter - 如何在推特上搜索关键字

标签 twitter

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

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

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

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

  4. 找到从 Twitter 购买整个 firehose 的第三方(例如 Datasift)并在那里搜索 Twitter 流。这变得昂贵——基本计划每月 3000 美元。全天候 24 小时搜索单个单词的费用约为 45 美元/月)

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

谢谢大家

最佳答案

我整理了一个不错的 JS fiddle ,它应该可以回答您在处理 Twitter API 时的所有问题。该 Web 应用程序会抓取热门地区,并允许您深入了解热门话题,然后查看其中的推文。

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

享受

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();

});

关于twitter - 如何在推特上搜索关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13407431/

相关文章:

python - 无法使用 BeautifulSoup 解析 twitter 隐藏输入

php - 用户登录 TWITTER 后获取用户详细信息

ios - 当前 View : Swift 3

javascript - Twitter 关注小部件而不打开意图

ruby - 缓存中间人站点的图像

twitter - 嵌入式时间轴小部件在 SPA 中不起作用

facebook - 每个提供商的 firebase 用户 ID 是唯一的(facebook、twitter、密码)

javascript - 通过 Javascript 访问 Twitter

ruby - 未初始化的常量 Twitter::Search (NameError) ~ Ruby noob

php - 从我的网站向 Twitter 帐户发布推文时如何将文本设为粗体或斜体