質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.62%

  • Java

    13524questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Twitter

    642questions

    Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

twitter 4j で期間を区切ってつぶやきを取得したい

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 1,928

kkkk_k

score 9

twitter4jを利用し、期間を区切って、つぶやきを取得したいです。 
http://d.hatena.ne.jp/tetsuya_odaka/20130622/1371886944 
このページを参考にし、プログラムを作成しました。 

しかし、期間指定をするとつぶやきが取得できません。
コードにエラーは出ていません。

query.since(st);
query.until(ed);
の2行はコメントアウトすると取得できるので
設定等は間違っていないと思います。

どうすれば期間を指定して取得できるでしょうか?

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Date;
import java.util.StringTokenizer;

import twitter4j.Query;
import twitter4j.QueryResult;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;

public class testtweet {

    public static void main(String[] args) throws TwitterException {

        // 初期化
        Twitter twitter = new TwitterFactory().getInstance();
        Query query = new Query();
    try{    
        String st="2014-10-11";
        String ed="2014-10-13";

        // 検索ワードをセット(試しにhttpを検索)
        query.setQuery("アベノミクス");

        // 1度のリクエストで取得するTweetの数(100が最大)
        query.setCount(100);
        query.resultType(Query.RECENT);
        query.since(st);
        query.until(ed);
        // 最大1500件(15ページ)なので15回ループ
        for (int i = 1; i <= 15; i++) {
            QueryResult result = twitter.search(query);
            System.out.println("ヒット数 : " + result.getTweets().size());
            System.out.println("ページ数 : " + new Integer(i).toString());
      
            // 検索結果を見てみる
            for (Status tweet : result.getTweets()) {
                // 本文
                String str = tweet.getText();
                java.util.Date hiduke= tweet.getCreatedAt();
                System.out.println(str);
                
                
                
            }
            if(result.hasNext()){
                query = result.nextQuery();
            }else{
                break;
            }
        }  
    }catch (TwitterException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
        }
     }    
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+3

質問文中で提示されたコードの方法では 1 週間前より古いデータは取得できないようです。

github/katoy/testtwitter/src/main/java/com/katoy/testtwitter/Testtwitter.java のプログラムで試してみました。
(すこしプログラムの構造を変更してますが、使っている API とその使い方は質問文でのコードと同等です)

いろいろな期間を指定してみたときの実行結果を以下に示します。
$ java -jar target/testtwitter-1.0-SNAPSHOT-jar-with-dependencies.jar "アベノミクス" 15 2014-11-06 2014-11-09 > 2.txt
  
$ head 2.txt
ヒット数 : 100
ページ数 : 0
1    Sun Nov 09 08:59:18 JST 2014こういう呟きを見る度に呟きの主とイイネを付けている方々はアベノミクスの恩恵を受けている方々なのだろうか?と思ってしまいます。 http://t.co/2nez4uY3rA
2    Sun Nov 09 08:58:48 JST 2014RT @ohnishiren: 【SYNODOS】アベノミクスを成功させるために、消費税増税を先送りせよ/山本幸三×飯田泰之 http://t.co/9kItEotZ8e 「収入が200万円以下の世帯の消費は、支出額が-10%以上。消費税が3%あがったことを考えると、事実上-1…
3    Sun Nov 09 08:58:15 JST 2014RT @masa29222495: http://t.co/RZMXDJAAyV ロイター特集 「アベノミクスの波紋」が見易く面白い。外電の方がスッキリしていてわかり易い・・・ http://t.co/NLIqf9nxYj
4    Sun Nov 09 08:58:08 JST 2014安倍政権が郵政民営化を仕上げる! http://t.co/GWD6Udoqxx 郵政上場の主幹事会社が決定、来秋上場予定とのこと。主幹事会社にはゴールドマンサックスやモルガンも入っています。いよいよ郵政が外資に買われます。#郵政 #民営化 #アベノミクス
5    Sun Nov 09 08:58:02 JST 2014増税先送りなら解散、年内にも総選挙…首相検討 : 政治 : 読売新聞(YOMIURI ONLINE) http://t.co/08VPXq4ZjB
アベノミクスが失敗したって事はよくわかった
6    Sun Nov 09 08:58:00 JST 2014「女性が輝く社会」でなく、「日本人が輝く社会」を作ってください #移民 #アベノミクス #安倍 #男女共同参画 #多文化共生 #seiji #自民党
7    Sun Nov 09 08:57:59 JST 2014いよいよ衆議院の解散が話が出てきた。首相側近議員は8日、「選挙の争点はアベノミクスへの評価だ」と語ったらしい。何度もアフォノミクスと言っているように評価は悪いに決まっている。つまり解散・選挙をすれば米国の大統領と同じ運命だと思うけど解散する勇気はおありかな?
  
$ tail 2.txt
1496    Sat Nov 08 22:20:44 JST 2014RT @nobunobu666: ここ最近、ファンダにしろ短期トレーダーにしろ億ってた人が増えてきたのはアベノミクスで地合がいいいからだというのは見落とされがち。どんな手法であれ大抵は地合いに強く左右される。手法より地合いのほうが大切かもしれない。
1497    Sat Nov 08 22:20:29 JST 2014RT @nobunobu666: ここ最近、ファンダにしろ短期トレーダーにしろ億ってた人が増えてきたのはアベノミクスで地合がいいいからだというのは見落とされがち。どんな手法であれ大抵は地合いに強く左右される。手法より地合いのほうが大切かもしれない。
1498    Sat Nov 08 22:20:21 JST 2014RT @tomokun613: 国民に1億円ずつ配ったほうがよっぽどよかったのに RT @pecko178: 『アベノミクスで100兆円が吹っ飛んだ』
☟ http://t.co/TNhZF0HHhz
1499    Sat Nov 08 22:15:32 JST 2014世間ではアベノミクス効果で景気が良くなると考えられているようですが、
私としては全然景気が良くなったようには感じません。

少なくとも夫の給料が増えたわけでもなければ仕事が忙しくなったわけでもありません。
こういう時代にこそ、副業での収入は絶対に必要だと思います。
1500    Sat Nov 08 22:15:20 JST 2014RT @kurotupoi: さくら水産あら煮。分量的に劣化してる感じすごい。80円(税別)也。アベノミクス許さない。 http://t.co/sWIyC0J0jO

java -jar target/testtwitter-1.0-SNAPSHOT-jar-with-dependencies.jar "アベノミクス" 15 2014-11-06 2014-11-08
ヒット数 : 0
ページ数 : 0

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    "YYYY/MM/DD"という文字列を"YYYY年MM月DD日"という書式で取得したい。

    データベースからgetStringで取得した、"2014/5/11"といった文字列を"2014年5月11日"という書式で取得できる関数をどなたか教えていただけないでしょうか? F

  • 受付中

    [java][日付チェック]質問

    java初心者です。 テキストファイルを一行づつ読み込んで行く時に、 32日や14月など、異常な日付が紛れていた場合例外として処理する方法はありますでしょうか? while ((

  • 解決済

    Javaで住所から緯度経度を取得するために、ライブラリを入れたい」

    お世話になります。 Javaを使って、住所から緯度経度を取得したいです。 調べてみるとGoogleが公式でライブラリを公開しているらしいのでこれを利用しようと思っていますが、ライ

  • 解決済

    listの参照があいまいです

    この前質問させていただいたときに回答して下さった方のソースをコンパイルしてみたんですが(いらないimportまで書いてると思いますが気にしないでください)listの参照があいまいで

  • 解決済

    javaの入出力について

    年、月、日を順番に入力して、 yyyy年m月d日(曜日)のように、 出力させたいです。 下に日付までの結果を表示させるだけの プログラムを作成しました。 そこで2つ教えていただき

  • 解決済

    SimpleDateFormatで日時形式判定

    実現したいこと Javaの初心者です。 ログ解析用のツールを作成しているのですが、 標準入力から入力された日時が以下のいづれかの形式でなければエラーとなり、もう一度標準入力を

  • 解決済

    メソッドを使ったプログラムを作りたいです

    前提・実現したいこと Javaのメソッドを使う問題を解いています。 問題は以下の通りです。 ↓ 好物を元に動物の名前と特徴を出力するプログラム  ・作成するクラス 

  • 解決済

    ダブルクオーテーションで囲まれた文字を取得する方法

    Javaで ダブルクオーテーション「"」で囲まれた文字列を取得したいのですが、 Webを調べてもよい方法がヒットしませでした。 何かよい方法を知っている方、教えてください

同じタグがついた質問を見る

  • Java

    13524questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Twitter

    642questions

    Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。