如何在twitter上搜索关键字
我正在尝试建立一个服务,在持续监控的基础上为Twitter上的多个用户执行关键字搜索。似乎有5种不同的方法来实现这一点——都有各自的缺点。我浏览了Twitter和twitter4j文档,找不到任何其他方法如何在twitter上搜索关键字,twitter,Twitter,我正在尝试建立一个服务,在持续监控的基础上为Twitter上的多个用户执行关键字搜索。似乎有5种不同的方法来实现这一点——都有各自的缺点。我浏览了Twitter和twitter4j文档,找不到任何其他方法 使用TwitterRESTAPI执行搜索(https://dev.twitter.com/docs/api/1/get/search). 此API的结果有限:要求太多,您将受到限制。我必须记录最后一次读到的推文,这样我就不会重复结果。需要一个计时器来轮询流。如果有多个搜索词,则拨打多个电话很简
谢谢大家您希望搜索twitter的频率是多少,可能的搜索量是多少(即有多少用户,每个用户有多少关键字)
您是否也考虑过内置刮削工具?也就是说,让浏览器在服务器上运行,并保持搜索结果的最新状态,并为浏览器开发一个简单的插件,捕获数据并将其发布到您的数据库/发送到某个地方进行处理?Twitter的回应是使用#4——从供应商处购买访问权限,如Datasift。我制作了一个漂亮的JS提琴,在处理Twitter API时,它应该能回答您的所有问题。webapp可以获取趋势区域设置,并允许您深入到趋势主题,然后查看其中的tweet 我还包括了一个标准的Twitter搜索提交框,所以奇怪的是,这是一个赤裸裸的Tweetdeck客户端供您检查。另外,为了推动新Jquery库的自适应,我使用了1.91,它使用了新的live.bind click事件语法 享受
函数搜索Twitter(查询){
$.ajax({
网址:'http://search.twitter.com/search.json?'+jQuery.param(查询),
数据类型:“jsonp”,
成功:功能(数据){
var tweets=$(“#tweets”);
html(“”);
对于(数据中的res['results']){
追加(“”+data['results'][res]['from_user']+'写:'+data['results'][res]['text']+'
');
}
}
});
}
$(文档).ready(函数(){
函数getTrendsByID(id){
$.ajax({
网址:'http://api.twitter.com/1/trends/“+id+”.json”,
数据类型:“jsonp”,
成功:功能(数据){
$.each(数据[0]。趋势,函数(i){
});
}
});
};
函数getLocales(){
$.ajax({
网址:'https://api.twitter.com/1/trends/available.json',
数据类型:“jsonp”,
成功:功能(数据){
var locales=$('ul#locales');
html(“”);
$。每个(数据、功能(i){
localeID[i]=data[i].woeid;
$('ul#locales').append(''+data[i].name+' ');
});
}
});
};
函数getTrends(id){
$.ajax({
网址:'https://api.twitter.com/1/trends/“+id+”.json”,
数据类型:“jsonp”,
成功:功能(数据){
var趋势=$('ul#currentTrends');
html(“”);
$.each(数据[0]。趋势,函数(i){
$('ul#currentTrends')。追加(''+数据[0]。趋势[i]。名称+' ');
});
}
});
};
//事件处理程序
$(文档)。在“单击”上,在“区域设置”上,函数(){
var$this=$(this);
var localesHdr=$(“#CurrentTrendsCount h3”);
var tweets=$(“#tweets”);
var trendsHdr=$(“#tweetsCont h3”);
trendsHdr.html(“”);
html(“”);
localesHdr.html(“”);
$('#CurrentTrendsCount h3').html($this.text());
getTrends(localeID[$this.index()]);
});
$(文档)。在(“单击”,“当前趋势”,函数(){
var$this=$(this);
var trendsHdr=$(“#tweetsCont h3”);
trendsHdr.html(“”);
$('#tweetsCont h3').html($this.text());
变量参数={
q:$this.text(),
rpp:10
};
搜索推特(params);
});
$(“#提交”)。单击(函数(){
var trendsHdr=$(“#tweetsCont h3”);
var趋势=$(“#当前趋势”);
var local=$(“#CurrentTrendsCount h3”);
local.html(“”);
trendsHdr.html(“”);
html(“”);
$('#tweetsCont h3').html('搜索查询:'+$('#查询').val());
变量参数={
q:$('#query').val(),
rpp:10
};
搜索推特(params);
});
//全球的
var localeID=新数组();
//初始化!
getLocales();
});
对不起。添加了grails标记,认为我会把twitter4j和grails代码放在问题中。但没有必要,我希望尽可能地接近实时搜索Twitter。这是用户流的吸引力之一
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();
});