HyoJoon

중복제거 구현

1 -닉네임을 통한 검색
2 -검색어를 통한 검색
3 -시간을 통한 검색 구현완료
...\ No newline at end of file ...\ No newline at end of file
1 +이전 구현에서 나아가 중복제거 구현
2 +추가적으로 닉네임, 날짜, 검색어를 서로 연관시켜
3 +검색할 수 있게함
...\ No newline at end of file ...\ No newline at end of file
...@@ -22,11 +22,15 @@ def get_tweets(criteria): ...@@ -22,11 +22,15 @@ def get_tweets(criteria):
22 22
23 # 결과 합치기 23 # 결과 합치기
24 info_list = {'username' : username, 'text': content, 'time': tweet_date, 'link': link} 24 info_list = {'username' : username, 'text': content, 'time': tweet_date, 'link': link}
25 - tweet_list.append(info_list) 25 + tweet_list.append(info_list)
26 - print(tweet_list)
27 # 휴식 26 # 휴식
28 time.sleep(uniform(1,2)) 27 time.sleep(uniform(1,2))
29 - 28 + print("====================================")
29 + if(len(tweet_list) == 0):
30 + print("조건에 맞는 tweet이 없습니다.")
31 + else:
32 + print(tweet_list)
33 + print("====================================")
30 days_range = [] 34 days_range = []
31 35
32 start = datetime.datetime.strptime("2019-11-17", "%Y-%m-%d") 36 start = datetime.datetime.strptime("2019-11-17", "%Y-%m-%d")
...@@ -57,12 +61,31 @@ while(True): ...@@ -57,12 +61,31 @@ while(True):
57 61
58 if userNum == 1: 62 if userNum == 1:
59 nick = input("검색할 닉네임을 입력해주세요: ") 63 nick = input("검색할 닉네임을 입력해주세요: ")
60 - tweetCriteria = got.manager.TweetCriteria().setUsername(nick)\ 64 + print("1. 최근 10개만 보기")
65 + print("2. 해당 닉네임의 트윗 전부 다 보기")
66 + print("3. 현재 검색어를 적용시켜 보기")
67 + tweetNum = int(input("무엇을 하시겠습니까?: "))
68 + if(tweetNum == 1):
69 + tweetCriteria = got.manager.TweetCriteria().setUsername(nick)\
70 + .setSince(start_date)\
71 + .setUntil(end_date)\
72 + .setMaxTweets(10)
73 + get_tweets(tweetCriteria)
74 + elif(tweetNum == 2):
75 + tweetCriteria = got.manager.TweetCriteria().setUsername(nick)\
76 + .setSince(start_date)\
77 + .setUntil(end_date)\
78 + .setMaxTweets(-1)
79 + get_tweets(tweetCriteria)
80 + elif(tweetNum == 3):
81 + tweetCriteria = got.manager.TweetCriteria().setUsername(nick)\
61 .setQuerySearch(my_key)\ 82 .setQuerySearch(my_key)\
62 .setSince(start_date)\ 83 .setSince(start_date)\
63 .setUntil(end_date)\ 84 .setUntil(end_date)\
64 .setMaxTweets(-1) 85 .setMaxTweets(-1)
65 - get_tweets(tweetCriteria) 86 + get_tweets(tweetCriteria)
87 + else:
88 + print("잘못된 보기를 선택하셨습니다.")
66 elif userNum == 2: 89 elif userNum == 2:
67 my_key = input("검색할 키워드를 입력해주세요: ") 90 my_key = input("검색할 키워드를 입력해주세요: ")
68 tweetCriteria = got.manager.TweetCriteria().setQuerySearch(my_key)\ 91 tweetCriteria = got.manager.TweetCriteria().setQuerySearch(my_key)\
...@@ -93,13 +116,56 @@ while(True): ...@@ -93,13 +116,56 @@ while(True):
93 end_month = user_end // 100 - end_year * 100 116 end_month = user_end // 100 - end_year * 100
94 end_day = user_end - end_year * 10000 - end_month * 100 117 end_day = user_end - end_year * 10000 - end_month * 100
95 d1 = str(start_year) + "-" + str(start_month) + "-" + str(start_day) 118 d1 = str(start_year) + "-" + str(start_month) + "-" + str(start_day)
119 + # d2는 보여주기용, d3는 실제 코드에 넣기용(코드에 넣을때는 +1을 해줘야 한다.)
96 d2 = str(end_year) + "-" + str(end_month) + "-" + str(end_day) 120 d2 = str(end_year) + "-" + str(end_month) + "-" + str(end_day)
97 - print("=== 현재 설정된 트윗 수집 기간은 {} 에서 {} 까지 입니다 ===".format(d1, d2)) 121 + d3 = str(end_year) + "-" + str(end_month) + "-" + str(end_day + 1)
98 - print("=== 총 {}일 간의 데이터 수집 ===".format(user_end - user_start)) 122 + print("1. 현재 검색어를 적용시켜 검색")
99 - tweetCriteria = got.manager.TweetCriteria().setQuerySearch(my_key)\ 123 + print("2. 다른 검색어를 적용시켜 검색")
124 + myNum = int(input("무엇을 선택하시겠습니까?: "))
125 + if(myNum == 1):
126 + print("1. 닉네임을 적용시켜 검색")
127 + print("2. 닉네임 상관없이 전부 검색")
128 + myNum1 = int(input("무엇을 선택하시겠습니까?: "))
129 + if(myNum1 == 1):
130 + nick2 = input("검색할 닉네임을 입력해주세요: ")
131 + tweetCriteria = got.manager.TweetCriteria().setUsername(nick)\
132 + .setQuerySearch(my_key)\
100 .setSince(d1)\ 133 .setSince(d1)\
101 - .setUntil(d2)\ 134 + .setUntil(d3)\
102 .setMaxTweets(-1) 135 .setMaxTweets(-1)
136 + elif(myNum1 == 2):
137 + tweetCriteria = got.manager.TweetCriteria().setQuerySearch(my_key)\
138 + .setSince(d1)\
139 + .setUntil(d3)\
140 + .setMaxTweets(-1)
141 + else:
142 + print("잘못된 입력입니다.")
143 + continue
144 + elif(myNum == 2):
145 + my_key = input("검색할 키워드를 입력해주세요: ")
146 + print("1. 닉네임을 적용시켜 검색")
147 + print("2. 닉네임 상관없이 전부 검색")
148 + myNum2 = int(input("무엇을 선택하시겠습니까?: "))
149 + if(myNum2 == 1):
150 + nick2 = input("검색할 닉네임을 입력해주세요: ")
151 + tweetCriteria = got.manager.TweetCriteria().setUsername(nick)\
152 + .setQuerySearch(my_key)\
153 + .setSince(d1)\
154 + .setUntil(d3)\
155 + .setMaxTweets(-1)
156 + elif(myNum2 == 2):
157 + tweetCriteria = got.manager.TweetCriteria().setQuerySearch(my_key)\
158 + .setSince(d1)\
159 + .setUntil(d3)\
160 + .setMaxTweets(-1)
161 + else:
162 + print("잘못된 입력입니다.")
163 + continue
164 + else:
165 + print("잘못된 입력입니다.")
166 + continue
167 + print("=== 현재 설정된 트윗 수집 기간은 {} 에서 {} 까지 입니다 ===".format(d1, d2))
168 + print("=== 총 {}일 간의 데이터 수집 ===".format(user_end - user_start))
103 get_tweets(tweetCriteria) 169 get_tweets(tweetCriteria)
104 elif userNum == 4: 170 elif userNum == 4:
105 break 171 break
......