Twitter4j getUserTimeline使用

package Twitter;

import twitter4j.*;
import twitter4j.Twitter;
import twitter4j.conf.ConfigurationBuilder;
 
import twitter4j.json.DataObjectFactory;

import com.mongodb.DB;
import com.mongodb.DBCollection;

import com.mongodb.DBObject;
import com.mongodb.Mongo;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
import com.mongodb.util.JSON;

/**
 * <p>This is a code example of Twitter4J Streaming API - sample method support.<br>
 * Usage: java twitter4j.examples.PrintSampleStream<br>
 * </p>
 *
 * @author Yusuke Yamamoto - yusuke at mac.com
 */
public final class TwitterRest {
    /**
     * Main entry of this application.
     *
     * @param args
     */
	public DBCollection collection;
	public Mongo mongo;
	public int count = 1;
	
	public void LinkMongodb() throws Exception {
		
		/*
		 * Link Mongodb 
		 * build a data named FourS2
		 * build a collection named Foursquare
		 *  
		 */
		mongo = new Mongo("localhost", 27017);
    	DB db = mongo.getDB("TwitterMe");
    	collection = db.getCollection("DreamD");
    	System.out.println("Link Mongodb!");
	}
	

    public static void main(String[] args) throws TwitterException {
    	
    	final TwitterRest pr = new TwitterRest();
    	
    	try {
    		pr.LinkMongodb();
    	}  catch (Exception e) {
			e.printStackTrace();
		}  
    	
    	ConfigurationBuilder cb = new ConfigurationBuilder();
     	cb.setDebugEnabled(true)
     	  .setOAuthConsumerKey("7ZVgfKiOvBDcDFpytRWSA")
     	  .setOAuthConsumerSecret("JmeJVeym78arzmGthrDUshQyhkq6nWA9tWLUKxc")
     	  .setOAuthAccessToken("321341780-Zy7LptVYBZBVvAeQ5GFJ4aKFw8sdqhWBnvA3pDuO")
     	  .setOAuthAccessTokenSecret("foi8FnQCeN0J5cdwad05Q6d7dbytFayQn1ZOvmhF6Qc");
     	cb.setJSONStoreEnabled(true);
     	
     	//TwitterStreamFactory tf = new TwitterStreamFactory(cb.build());
     	TwitterFactory tf = new TwitterFactory(cb.build());
     	//TwitterStream twitterStream = tf.getInstance();
     	Twitter twitter = tf.getInstance();
     	Paging paging = new Paging(15, 200);
     	List<Status> statuses = twitter.getUserTimeline("BarackObama", paging);
     	
     	Iterator it=statuses.iterator();

        while(it.hasNext())
        {
          Status value=(Status)it.next();
          String str = DataObjectFactory.getRawJSON(value);
          try {
        	  DBObject dbObject =(DBObject)JSON.parse(str);
        	  pr.collection.save(dbObject);
          } catch (Exception e) {
  			e.printStackTrace();
  		} 
          System.out.println(str);
        }  
        pr.mongo.close();     	
    }   
}


Twitter现在又限制了,只能拿到200个左右的tweets。

如果要全部的,大家可以参考之前的selenium的方法去网页是自己抓。

会很麻烦,不过是有效的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值