【Twitter4J】Twitterの全ユーザーの公開ツイート(日本のみ)を表示する方法(その1、PublicTimeline)


※注意(2013/04/24 追記)
このPublicTimelineはTwitter API 1.1では廃止されて使えなくなります。



今回はTwitterの全ユーザーの公開ツイート(日本のみ)を表示する方法についてです。
2つ方法があります。

1つ目の方法をこの記事で、2つ目の方法を別記事で紹介します。

まず1つ目はPublicTimelineを用いる方法です。
一度に20件取得できます。繰り返し実行することで数を増やせますね。

コードは次のようになります。
日本のツイートのみを抽出する方法については<方法1><方法2>のどちらかを使います。
この方法については次のページを参考にさせていただきました。
ありがとうございました。
 →01.151a_bot - 陽昇れども地の底に光届かず
 →「Java」文字列の中に日本語が含まれてるかどうかの判断


import java.util.List;
import twitter4j.*;


public class TwitterPublicTimeline {

public static void main(String[] args){

try{

//自動的に認証してくれる
//(バージョン2.2.4以降はgetInstance()ではなくgetSingleton()を推奨)
new TwitterFactory();
Twitter twitter = new TwitterFactory.getSingleton();

//パブリックタイムライン取得
List<Status> statuses = twitter.getPublicTimeline();

for (Status status : statuses) {
//statusとuserの使い分けに注意!

//タイムライン上のユーザの情報を取得
User user = status.getUser();


//※日本のツイートのみを出力する
//<方法1>
//文字列の中に日本語が含まれている場合のみ出力する
if (containsNihongo(status.getText()) == true){

//ツイートから改行記号を除去(半角スペースに変換)
String strText = status.getText();
strText = strText.replaceAll("\r\n"," ");
strText = strText.replaceAll("\r"," ");
strText = strText.replaceAll("\n"," ");

//ツイートからタブ記号を除去(半角スペースに変換)
strText = strText.replaceAll("\t"," ");

//コンソールに出力する(タイムゾーン、位置情報、日時、ユーザ名、ツイート)
System.out.println(user.getTimeZone() + "\t" + status.getGeoLocation() + "\t" + status.getCreatedAt() + "\t" + user.getScreenName() + "\t" + strText);
}


//<方法2>
//タイムゾーンが東京、大阪、札幌(Tokyo, Osaka, Sapporo)の場合のみ出力する(nullの場合に注意)
//if (user.getTimeZone() != null && (user.getTimeZone().equals("Tokyo") ||
// user.getTimeZone().equals("Osaka") ||
// user.getTimeZone().equals("Sapporo"))){

// //ツイートから改行記号を除去(半角スペースに変換)
// String strText = status.getText();
// strText = strText.replaceAll("\r\n"," ");
// strText = strText.replaceAll("\r"," ");
// strText = strText.replaceAll("\n"," ");

// //ツイートからタブ記号を除去(半角スペースに変換)
// strText = strText.replaceAll("\t"," ");

// //コンソールに出力する(タイムゾーン、位置情報、日時、ユーザ名、ツイート)
// System.out.println(user.getTimeZone() + "\t" + status.getGeoLocation() + "\t" + status.getCreatedAt() + "\t" + user.getScreenName() + "\t" + strText);
//}
}
} catch(TwitterException te){
te.printStackTrace();
} catch(Exception e){
e.printStackTrace();
}
}

//文字列の中に日本語が含まれているかどうかの判断
public static boolean containsNihongo(String str) {
for(int i = 0 ; i < str.length() ; i++) {
char ch = str.charAt(i);
Character.UnicodeBlock unicodeBlock = Character.UnicodeBlock.of(ch);

if (Character.UnicodeBlock.HIRAGANA.equals(unicodeBlock))
return true;

if (Character.UnicodeBlock.KATAKANA.equals(unicodeBlock))
return true;

if (Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS.equals(unicodeBlock))
return true;

if (Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS.equals(unicodeBlock))
return true;

if (Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION.equals(unicodeBlock))
return true;
}
return false;
}
}

<方法1>では文字列の中に日本語が含まれている場合のみ出力、<方法2>ではタイムゾーンが東京、大阪、札幌(Tokyo, Osaka, Sapporo)の場合のみ出力するようにして抽出をしています。
位置情報を付けてツイートする人はあまりいないし、プロフィールの場所の情報も必ずしも入っているわけではないのでこの方法にしてみました。
この場合も一長一短なので必要に応じて使い分けたり組み合わせたりする必要がありますね。
20件取得したうち日本のもののみなので数はかなり減りますね。。。

まあ、すでにウェブサービスとして同様のものがあるので単にツイートを眺めたいという場合はこちらでいいですね。
 →Twitterをもっと便利にみんなとつながるサービス~meyou.jp(ミーユー)
自分でアプリを作りたい場合やツイートを分析したい場合に自分でプログラムを組むということになります。


↓この記事が参考になったら拍手をクリックお願いします。今後のブログ作りに役立てたいので。
関連記事

コメントの投稿

非公開コメント

プロフィール

てぃー

Author:てぃー
詳しい自己紹介:こちら
Twitter:@teapipin


Instagram:@teapipin

follow us in feedly 
にほんブログ村 IT技術ブログへ にほんブログ村 PC家電ブログへ
現在の閲覧者数:

ブログ内検索
今日のアクセス数の多い記事
カレンダー

09月 | 2023年10月 | 11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
過去記事ダイジェスト
お知らせ
ツイッター分析の分析結果が引用された研究が学会賞を受賞!!


ツイッター分析の分析結果が新潟大学教育学部の論文に引用
教育の実証研究の場でも高く評価!

ツイッター分析の分析結果が和歌山大学防災研究教育センターの論文に引用
防災の研究において評価!

2015年版ツイッター分析(世界編)が始動!
今回は世界の国別・言語別ツイートを分析!

ツイッター分析の分析結果が慶應義塾大学有名教授の研究論文などに引用
文系の研究までも制覇!

Interval Timer EX
有名雑誌「Mac Fan 2015月2月号」に「インターバルタイマーEX」が3度目の掲載!ポモドーロテクニックに有効!

自作Macアプリ3部作が2014年 Vector 年間ダウンロードランキング Mac トップ100にすべてランクイン

TimeCalcを公開しています!
時間計算、年齢計算、学歴欄作成など。

ツイッター分析の分析結果が人工知能の研究に!
ブログが学会発表で引用されました。

今まで開発したiPhoneアプリのソースコードを公開しています!
勉強に役立ててください。


2013年 Vector 年間ダウンロードランキング Mac トップ100に「デジカメ変更日を撮影日に一括変更 for Mac」と「インターバルタイマーEX」がランクイン

Interval Timer EX
有名雑誌「Mac Fan 2013月4月号」に「インターバルタイマーEX」が2度目の掲載!!

リアルタイムツイッター地図
リアルタイムツイッター地図を公開しています!
位置情報付きツイートをリアルタイムに表示します。

新たなツイッター分析としてイベントツイート分析を行っています!

2012年8月1日(水)開催の「Twitter勉強会」で発表
ツイッター調査:約173万ツイートを調査して分かったTwitterの利用動向 #twtr_hack from teapipin


Interval Timer EX
有名雑誌「Mac Fan 2012月3月号」に「インターバルタイマーEX」が掲載!!



 

はてなブックマークの人気記事