如何使用 Twitter4j 检索超过 100 个结果

2024-03-08

我正在使用 Twitter4j 库来检索推文,但我得到的信息还不足以满足我的目的。目前,我从一页最多获取 100 个。如何在处理中的以下代码中实现 maxId 和sinceId,以便从 Twitter 搜索 API 检索超过 100 个结果?我对处理(以及一般的编程)完全陌生,所以任何关于这方面的指导都会很棒!谢谢!

void setup() {

  ConfigurationBuilder cb = new ConfigurationBuilder();
  cb.setOAuthConsumerKey("xxxx");
  cb.setOAuthConsumerSecret("xxxx");
  cb.setOAuthAccessToken("xxxx");
  cb.setOAuthAccessTokenSecret("xxxx");

  Twitter twitter = new TwitterFactory(cb.build()).getInstance();
  Query query = new Query("#peace");
  query.setCount(100);

  try {
    QueryResult result = twitter.search(query);
    ArrayList tweets = (ArrayList) result.getTweets();

    for (int i = 0; i < tweets.size(); i++) {
      Status t = (Status) tweets.get(i);

      GeoLocation loc = t.getGeoLocation();

      if (loc!=null) {
        tweets.get(i++);

        String user = t.getUser().getScreenName();
        String msg = t.getText();

        Double lat = t.getGeoLocation().getLatitude();
        Double lon = t.getGeoLocation().getLongitude();

        println("USER: " + user + " wrote: " + msg + " located at " + lat + ", " + lon);

      }
    }
  }

  catch (TwitterException te) {
    println("Couldn't connect: " + te);
  };
}

void draw() {
}

不幸的是你不能,至少不能以直接的方式,比如这样做

query.setCount(101);

As the javadoc http://twitter4j.org/javadoc/twitter4j/Query.html#setCount%28int%29表示最多只允许 100 条推文。

为了克服这个问题,您只需分批请求它们,并在每批中将您获得的最大 ID 设置为比上一个获得的最后一个 ID 小 1。为了总结这一点,您将进程中的每条推文收集到一个 ArrayList 中(顺便说一下,它不应该保持通用,而是将其类型定义为ArrayList<Status>- 一个带有 Status 对象的 ArrayList),然后打印所有内容!这是一个实现:

void setup() {

  ConfigurationBuilder cb = new ConfigurationBuilder();
  cb.setOAuthConsumerKey("xxxx");
  cb.setOAuthConsumerSecret("xxxx");
  cb.setOAuthAccessToken("xxxx");
  cb.setOAuthAccessTokenSecret("xxxx");

  Twitter twitter = new TwitterFactory(cb.build()).getInstance();
  Query query = new Query("#peace");
  int numberOfTweets = 512;
  long lastID = Long.MAX_VALUE;
  ArrayList<Status> tweets = new ArrayList<Status>();
  while (tweets.size () < numberOfTweets) {
    if (numberOfTweets - tweets.size() > 100)
      query.setCount(100);
    else 
      query.setCount(numberOfTweets - tweets.size());
    try {
      QueryResult result = twitter.search(query);
      tweets.addAll(result.getTweets());
      println("Gathered " + tweets.size() + " tweets");
      for (Status t: tweets) 
        if(t.getId() < lastID) lastID = t.getId();

    }

    catch (TwitterException te) {
      println("Couldn't connect: " + te);
    }; 
    query.setMaxId(lastID-1);
  }

  for (int i = 0; i < tweets.size(); i++) {
    Status t = (Status) tweets.get(i);

    GeoLocation loc = t.getGeoLocation();

    String user = t.getUser().getScreenName();
    String msg = t.getText();
    String time = "";
    if (loc!=null) {
      Double lat = t.getGeoLocation().getLatitude();
      Double lon = t.getGeoLocation().getLongitude();
      println(i + " USER: " + user + " wrote: " + msg + " located at " + lat + ", " + lon);
    } 
    else 
      println(i + " USER: " + user + " wrote: " + msg);
  }
}

注:线

ArrayList<Status> tweets = new ArrayList<Status>();

正确地应该是:

List<Status> tweets = new ArrayList<Status>();

因为你如果您想添加不同的实现,则应始终使用该接口 https://stackoverflow.com/questions/3194278/should-you-always-code-to-interfaces-in-java。当然,如果您使用的是Processing 2.x,那么一开始就需要这样:

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

如何使用 Twitter4j 检索超过 100 个结果 的相关文章

  • Eclipse 在源代码管理中保存操作

    我们希望找到一种在签入之前执行代码标准的 轻量级 方法 我们真的很喜欢使用 Eclipse 内置的想法保存操作 go to Preferences gt gt Java gt gt Editor gt gt Save Actions 其中有
  • 如何使用 Java 中的 Web 服务(例如 Axis2)发送复杂对象的数组或集合?

    我对 SOAP Web 服务还比较陌生 虽然我完成了一些较小的 Web 服务项目 但我偶然从来不需要返回 或用作参数 复杂 对象的数组或集合 当我尝试这样做时 根据我的 SOAP 绑定风格 我会得到不同的奇怪行为 当我使用RPC 文字 我可
  • 插入最大日期(独立于数据库)

    在我的本地设置中 我使用一个简单的 H2 数据库 托管 解决方案将有另一个 类似但不相同 数据库 我需要将最大可能日期插入到日期时间列中 我尝试使用 Instant MAX 但是 这会导致列中出现 169104626 12 11 20 08
  • 是什么决定了从 lambda 创建哪个函数式接口?

    请考虑这个例子 import java util function Consumer public class Example public static void main String args Example example new
  • Java:如何从转义的 URL 获取文件?

    我收到了一个定位本地文件的 URL 事实上我收到的 URL 不在我的控制范围内 URL 按照 RFC2396 中的定义进行有效转义 如何将其转换为 Java File 对象 有趣的是 URL getFile 方法返回一个字符串 而不是文件
  • OSGi:如果不取消服务会发生什么

    这是我获取 OSGi 服务的方式 ServiceReference reference bundleContext getServiceReference Foo class getName Foo foo Foo bundleContex
  • JAVA - Xuggler - 组合 MP3 音频文件和 MP4 电影时播放视频

    使用 JAVA 和 Xuggler 以下代码组合 MP3 音频文件和 MP4 电影文件并输出组合的 mp4 文件 我希望在合并音频和视频文件时应自动播放输出视频文件 String inputVideoFilePath in mp4 Stri
  • wait() 在游戏中如何工作?

    在 playframework 的文档中here http www playframework org documentation 1 2 1 asynchronous已写 public static void loopWithoutBlo
  • 按第一列排序二维数组,然后按第二列排序

    int arrs 1 100 11 22 1 11 2 12 Arrays sort arrs a b gt a 0 b 0 上面的数组已排序为 1 100 1 11 2 12 11 22 我希望它们按以下方式排序a 0 b 0 首先 如果
  • 如何在不超过最大值的情况下增加变量?

    我正在为学校开发一个简单的视频游戏程序 我创建了一个方法 如果调用该方法 玩家将获得 15 点生命值 我必须将生命值保持在最大值 100 并且由于我目前的编程能力有限 我正在做这样的事情 public void getHealed if h
  • 当从服务类中调用时,Spring @Transactional 不适用于带注释的方法

    在下面的代码中 当方法内部 是从内部调用的方法外部 应该在交易范围内 但事实并非如此 但当方法内部 直接从调用我的控制器class 它受到事务的约束 有什么解释吗 这是控制器类 Controller public class MyContr
  • 我需要什么库才能在 Java 中访问这个 com.sun.image.codec.jpeg?

    我正在用java创建一个图像水印程序 并导入了以下内容 import com sun image codec jpeg JPEGCodec import com sun image codec jpeg JPEGEncodeParam im
  • hibernate锁等待超时超时;

    我正在使用 Hibernate 尝试模拟对数据库中同一行的 2 个并发更新 编辑 我将 em1 getTransaction commit 移至 em1 flush 之后我没有收到任何 StaleObjectException 两个事务已成
  • Java 8 流 - 合并共享相同 ID 的对象集合

    我有一系列发票 class Invoice int month BigDecimal amount 我想合并这些发票 这样我每个月都会收到一张发票 金额是本月发票金额的总和 例如 invoice 1 month 1 amount 1000
  • 具有 java XSLT 扩展的数组

    我正在尝试使用 java 在 XSLT 扩展中使用数组 我收到以下错误 Caused by java lang ClassCastException org apache xpath objects XObject cannot be ca
  • 普罗米修斯指标 - 未找到

    我有 Spring Boot 应用程序 并且正在使用 vertx 我想监控服务和 jvm 为此我选择了 Prometheus 这是我的监控配置类 Configuration public class MonitoringConfig Bea
  • 以编程方式在java的resources/source文件夹中创建文件?

    我有两个资源文件夹 src 这是我的 java 文件 资源 这是我的资源文件 图像 properties 组织在文件夹 包 中 有没有办法以编程方式在该资源文件夹中添加另一个 properties 文件 我尝试过这样的事情 public s
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • 如何在JSTL中调​​用java方法? [复制]

    这个问题在这里已经有答案了 这可能是重复的问题 我只想调用不是 getter 或 setter 方法的方法例如 xyz 类的 makeCall someObj stringvalue Java类 Class XYZ public Strin
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用

随机推荐

  • jquery验证器表单:如何在完成远程电子邮件验证后访问表单操作

    History 我之前开始这个问题这个线程 https stackoverflow com questions 31966294 form post is omitted after jquery validation is complet
  • phoneGap - iOS - 图像可以通过 wifi 正常使用,但无法使用 3G 加载(使用 safari 工作正常)

    我遇到了一种奇怪的行为 我的应用程序的 远程托管 图像仅在这种情况下不会显示 使用3G加载 在 iPhone 上 using phonegap 在以下情况下图像加载正常 我启动该应用程序 有 wifi 即使是热点 我启动了该应用程序的网站版
  • 如何在MongoDB中指定字段进行多条件查找查询?

    这是单个文档 id firstName john lastName Doe cars id carName BMW carModel 330 carColor silver id carName Lexus carModel IS300 c
  • Python 的 3D 场景渲染器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个易于使用的 Python 3D 场景渲染器 我所寻找的只是能够 加载3D场景模型 使用正
  • 无法在azure devops中构建asp.net应用程序

    能够在本地构建应用程序 但是当我尝试在 azure Devops 管道中构建时 它显示以下错误 我已经安装了实体框架并在 Web 配置文件中添加了 system data entity design 程序集 不走运 请在此处查找管道 htt
  • Bash 确认不会等待用户输入

    我正在尝试使用 bash 脚本实现确认提示 但由于某种原因 提示不会等待用户输入 我尝试过很多例子 但到目前为止还没有运气 如果有什么区别的话我用的是MacOS 只是我尝试过的几个例子 所有复制 粘贴来自SO中的其他答案 bin bash
  • [Int] 之和导致溢出

    我有一个返回的函数 Int 我想计算列表的总和 然而 虽然每个单独的元素都小于maxBound Int 总和肯定更大 一个 人为的 例子 ghci gt sum 1 10000000 Int 2004260032 有没有办法强制 sum 累
  • 使用 Mono Touch 时,我还可以打包为标准 Window 应用程序吗?

    我知道 Mono Touch 可以使用几乎一份源代码进行开发并部署到 Android iO 和 Windows Mobile 当然会有 3 个项目和一些与平台相关的代码 但我会有重要的 C 通用代码 但我还需要我的开发能够在标准 Windo
  • Ruby 是脚本语言还是解释语言?

    我刚刚注意到在Ruby的维基百科页面中 这种语言被定义为解释性语言 我明白我的背景中可能缺少一些东西 我一直都知道不需要编译器的解释型语言和编译型语言 需要在程序执行之前进行编译 之间的区别 但是脚本语言有什么特点呢 Ruby 可以定义为脚
  • webrtc如何选择输入视频设备?

    我正在研究webRTC应用程序 我参考的是这个软件 apprtc https code google com p webrtc source browse trunk samples js apprtc https code google
  • 编程中“let”变量的语言含义[重复]

    这个问题在这里已经有答案了 所以 我是一名 javascript 程序员 新版本的JavaScript ES6 http www ecma international org ecma 262 6 0 index html有一个用于声明变量
  • OpenCV = 运算符

    我正在研究 OpenCV 但我有一个困惑 我经历过这个link http opencv willowgarage com documentation cpp core basic structures html cv mat operato
  • 矩阵问题Python

    例如 如果我有矩阵 x 1 7 U1 1 5 8 U1 2 5 5 U2 如何获取 x 中除最后一个数据之外的所有数据 然后我需要对这些元素求和 这就是我需要的 sum 1 7 1 5 8 2 5 5 Thanks EDIT2 I try
  • 如何在.net中调试测试

    我想调试我的测试 检查每个测试 看看到底哪里失败了 我正在使用 coderush 这是一个很棒的工具 但我的 1 个月试用期已过期 欢迎任何建议 正如马克所说 如果你发现一个工具确实有用 就购买它 我个人使用 ReSharper 来运行我的
  • 在子查询中聚合按位或

    给出下表 CREATE TABLE BitValues n int 是否可以计算按位或n对于子查询中的所有行 例如 如果 BitValues 包含以下 4 行 n 1 2 4 3 我希望子查询返回 7 有没有办法在不创建 UDF 的情况下内
  • 实体框架+验证注解

    我想使用验证注释 我已经有一个由实体框架实现的模型 我需要数据验证 并且我知道有一个非常好的数据注释 但我真的不知道如何正确使用它与实体框架 我应该编辑实体吗 或者我应该写单独的课程 或者我应该编写从实体继承的类 你能告诉我应该使用的最佳方
  • 通过 HttpClient 对 HTTP Post 的非字符串属性进行 UrlEncode

    这段代码是Python中的 dataParams urllib urlencode name myname id 2 dataReq urllib2 Request mylink dataParams dataRes urllib2 url
  • 在 C 中使用嵌套循环打印星号('*')菱形?

    我希望当用户输入 5 作为钻石时能够打印这样的钻石 但也适用于任何奇数且大于 0 的值 我有一个代码 可以为用户输入 5 创建一个菱形 但不适用于所有奇数输入 half size 2 1 for a 1 a lt half a top to
  • 如何在 JavaScript 中执行 JSTL 的 c:url 的等效操作?

    我有一些 JavaScript 对相对 url 进行 Ajax 调用 使用 jQuery var servletUrl someservlet ajax type POST url servletUrl success function r
  • 如何使用 Twitter4j 检索超过 100 个结果

    我正在使用 Twitter4j 库来检索推文 但我得到的信息还不足以满足我的目的 目前 我从一页最多获取 100 个 如何在处理中的以下代码中实现 maxId 和sinceId 以便从 Twitter 搜索 API 检索超过 100 个结果