본문 바로가기
빅데이터/크롤링

자바 트위터 API를 이용한 데이터 수집 하기 (트위터 크롤링)

by 처리2 2020. 12. 23.
반응형

님들 트위터 크롤링해본적 있나요?

 

전 있어요 근데 존나 안돼요 왜냐구요? 그러니깐여.. 우리는 맨날 드라이버를 이용해서 태그찾고 내용 가져오잖아요?

 

근데 트위터는 api가 매우 잘 되어있기 때문에 우리가 굳이 그렇게 고생 안해도 됩니다 ㅎㅎㅎㅎ

 

자 소스 들어갑니다. 잘보세요

 

아아아아 그전에 라이브러리 부터 선언해줘야하는데 gradle이런거 찾아봐도 ㅈㄴ 없더라고요

 

 

lib.zip
0.64MB

이거 다운 받으시고 lib파일 안에 그냥 때려박으세염 물론 압축은 해제하고 jar파일 말하는거는 다들 아시겟죠?

ㅎㅎㅎㅎ

 

자 그럼 이제 소스 보세염

 


	public TwitterCrawling() {
		ArrayList<crawlingDTO> Tlist = new ArrayList<>();
		try {
			TwitterAPIConn();
			Twitter twitter = new TwitterFactory(cb.build()).getInstance();;
			
			String userName = "@~~~"; //@를 포함한 부분 넣어주세여
			
			for(int i=1;i<100;i++) {
					Tlist = new ArrayList<>();
					Paging page = new Paging (i, 100);//1페이지당 가져오는 게시물 수
					ResponseList<Status> Statuses = twitter.getUserTimeline(userName, page);
					
					if(Statuses.size() == 0) {break;}
					
					for(Status s : Statuses) {
						
						//시간 설정
						SimpleDateFormat format = new SimpleDateFormat("E MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
						SimpleDateFormat tranSimpleFormat = new SimpleDateFormat("yyyy.MM.dd", Locale.ENGLISH);
						Date date = format.parse(s.getCreatedAt().toString());
						
                        String dates = tranSimpleFormat.format(date);
						String content = s.getText();
						content = Normalizer.normalize(content, Normalizer.Form.NFC); //글자 깨지는 현상 복구
						String link = "https://twitter.com/greenjeonnam/status/"+s.getId()

			}
		}catch(Exception e) {
			System.out.println("twitter에러 아니면 종료 :" + e);
		}
	}
	
	
	public void TwitterAPIConn() {
		cb.setDebugEnabled(true)
		    .setOAuthConsumerKey("자신의 key")
		    .setOAuthConsumerSecret("자신의 key")
		    .setOAuthAccessToken("자신의 key")
		    .setOAuthAccessTokenSecret("자신의 key");
	}

이건데 트위터 개발자 로그인 하셔서 key 발급받는거는 쉬우니께 그거는 주석처리 하겠습니다?

ㅋㅋㅋㅋㅋㅋ

 

이렇게 하면 쉽게 데이터 출력 가능합니다~

 

반응형

댓글