簡體   English   中英

修剪了Twitter4j的推文

[英]Twitter4j tweets trimmed

使用Twitter4j庫,我試圖基於從另一個文本文件中獲取的關鍵字來搜索tweet,並將這些tweet下載到新的文本文件中。 問題在於,在特定數量的字符之后,將修剪推文。 有沒有辦法使用Twitter4j獲取完整的推文? 如果沒有,是否可以使用另一個庫呢? 這是我的代碼:

public class TweetsCollection {

private static long sleepTime = 15*60*1000;

/**
 * @param args
 * @throws IOException 
 * @throws TwitterException 
 * @throws InterruptedException 
 */
public static void main(String[] args) throws IOException, TwitterException, InterruptedException {
    //key 1
    ConfigurationBuilder cb = new ConfigurationBuilder();
    cb.setDebugEnabled(true).setOAuthConsumerKey("4ccwVAaTWOpgq4sBlEdMchwZj").setOAuthConsumerSecret("wxwwiB2KzycrVwW2VBuiJfSQnZ8c40M8l1gyrsFwtOHLVjzayW").setOAuthAccessToken("4040566239-2pCR8GkvtGsrOnpUYOizm5Jeei9y3mTWU3ncV0q").setOAuthAccessTokenSecret("jv1OBHBGAn6DxmONH75Z7iIlhdTcQcrHAfgGvpPi5QtVQ");
    TwitterFactory tf = new TwitterFactory(cb.build());
    Twitter t = tf.getInstance();


    //key 2
    ConfigurationBuilder cb2 = new ConfigurationBuilder();
    cb2.setDebugEnabled(true).setOAuthConsumerKey("mDEaFgTxIn0KrEWeJIv2e4liU").setOAuthConsumerSecret("CrAXR7XhEgOwIWBBt0zprTb6LU0GLPwOgVKzFGIKsPm3ZgdVZq").setOAuthAccessToken("4040566239-J0n5HAkxU2bqiX9Vg3zEFRkRUcXzxjAsLd0qy3V").setOAuthAccessTokenSecret("XhIv3MY679WwVPIE9S6dIG75uydwokbLJgOko2Xz6xq6B");
    TwitterFactory tf2 = new TwitterFactory(cb2.build());
    Twitter t2 = tf2.getInstance();

    //key 3
    ConfigurationBuilder cb3 = new ConfigurationBuilder();
    cb3.setDebugEnabled(true).setOAuthConsumerKey("Q4dkKHY9A9V2y5be9A29RCpiv").setOAuthConsumerSecret("Zb6eRY7c3hduxi4K3nT4h29RzIgXJkZV4ucZhXZP5qvQtj5z7b").setOAuthAccessToken("4040566239-CN2BDnQ2cqHixd8njqxIDfjbq7JaEtzLLJMvLgp").setOAuthAccessTokenSecret("4fpoZ83Ncg2l9LSQ1RGTi5hRpBUtk1GkjdRMgwF0wH9c7");
    TwitterFactory tf3 = new TwitterFactory(cb3.build());
    Twitter t3 = tf3.getInstance();

    //key 4
    ConfigurationBuilder cb4 = new ConfigurationBuilder();
    cb4.setDebugEnabled(true).setOAuthConsumerKey("GRbm01er8V2AJX2buzr5SJ7we").setOAuthConsumerSecret("CheABRf2r5GJoa49wIuKNOn7e46JpupZLMQ9CdhTiseK3dSAlH").setOAuthAccessToken("4040566239-DKJKl7cD0ClYxS3ZItwIXfh3BCqStvD5fUuUcnI").setOAuthAccessTokenSecret("OVEoN49qHQWLcmCNk4KfBxNdYTx2D1qT2mxAM3JUEMtry");
    TwitterFactory tf4 = new TwitterFactory(cb4.build());
    Twitter t4 = tf4.getInstance();


    // TODO Auto-generated method stub
    BufferedReader bf = new BufferedReader(new FileReader("/home/george/Desktop/trends.txt"));
    String trendName = "";
    while ((trendName = bf.readLine())!=null){
        Query topicQuery1 = new Query(trendName);
        Query topicQuery2 = new Query(trendName);
        Query topicQuery3 = new Query(trendName);
        Query topicQuery4 = new Query(trendName);
        BufferedWriter bw = new BufferedWriter(new FileWriter("/home/george/Desktop/tweets/"+trendName+".txt",true));
        QueryResult queryResult1 = t.search(topicQuery1);
        QueryResult queryResult2 = t2.search(topicQuery2);
        QueryResult queryResult3 = t3.search(topicQuery3);
        QueryResult queryResult4 = t4.search(topicQuery4);


        for (Status aStatus : queryResult1.getTweets()){
            bw.write(aStatus.getText()+"\n\n");
        }
        for (Status aStatus : queryResult2.getTweets()){
            bw.write(aStatus.getText()+"\n\n");
        }
        for (Status aStatus : queryResult3.getTweets()){
            bw.write(aStatus.getText()+"\n\n");
        }

        for (Status aStatus : queryResult4.getTweets()){
            bw.write(aStatus.getText()+"\n\n");
        }
        bw.close();
        Thread.sleep(sleepTime);
    }

    bf.close();
}

}

要獲取該tweet的全文,請添加參數tweet_mode,並將其值擴展到您的請求參數。

twitter4j.conf.ConfigurationBuilder()
.setOAuthConsumerKey("")) 
.setOAuthConsumerSecret("") 
.setOAuthAccessToken("")
.setOAuthAccessTokenSecret("")
.setTweetModeExtended(true)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM