【发布时间】:2016-03-03 01:01:27
【问题描述】:
我想使用 Twitter4j 从 twitter API 获取所有推文。这是我使用geoCode 获取推文的代码,但我无法获取所有推文,它只显示了大约 100 条推文。有什么办法我可以把它们都拿回来。我认为我可以接收的推文数量有一个速率限制,但我不确定。
有人可以帮忙吗?
import java.util.List;
import twitter4j.*;
import twitter4j.auth.AccessToken;
public class Main {
public static void main(String[] args) {
final Twitter twitter = new TwitterFactory().getInstance();
final AccessToken accessToken = new AccessToken("XXX", "YYY");
twitter.setOAuthConsumer("AAA", "BBB");
twitter.setOAuthAccessToken(accessToken);
try {
Query query = new Query();
query.geoCode(new GeoLocation(37.781157,-122.398720),1000.0,"mi");
QueryResult result;
System.out.println("Searching...");
int Count=0;
do {
result = twitter.search(query);
List<Status> tweets = result.getTweets();
for (Status tweet : tweets) {
if(tweet.getGeoLocation()!=null)
System.out.println(tweet.getGeoLocation());
}
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
while ((query = result.nextQuery()) != null);
System.out.println(Count);
System.exit(0);
} catch (TwitterException te) {
te.printStackTrace();
System.out.println("Failed to search tweets: " + te.getMessage());
System.exit(-1);
}
}
}
【问题讨论】:
-
1-切勿发布您的 OAUTH 凭据。 2-您是否阅读过有关此问题的 API 文档? dev.twitter.com/overview/documentation
-
糟糕。我忘记了。是的,我已经阅读了文档,发现它在这个问题上令人困惑。
-
我刚刚运行了你的代码,我收到了 403 条推文
-
是的..但我需要更多来执行一些分析。我也需要他们的经纬度。
-
“搜索 API 专注于相关性而不是完整性”,并且您无法从超过几天的时间内收到推文,因此如果您想做一个类似该链接的情节,您应该使用流 api 和设置您想要获取这些推文的位置范围dev.twitter.com/streaming/overview/request-parameters#locations