2016-06-16 2 views
0

트윗을 받고 데이터베이스에 모든 트윗을 저장하기 위해 Tweepy를 사용하고 있습니다. 하지만 지금 직면하고있는 문제는 Tweepy가 데이터베이스에 중복 트윗을 저장하는 것입니다.Tweepy가 데이터베이스에 중복 트윗을 저장하지 않습니다.

여기의 I는 아래의 사용 코드 :

from tweepy import Stream 
 
from tweepy import OAuthHandler 
 
from tweepy.streaming import StreamListener 
 
from flask_sqlalchemy import SQLAlchemy 
 
from models import TrainingTweets, db 
 
import mysql.connector 
 
import json 
 
import tweepy 
 
from tweepy.api import API 
 

 
#consumer key, consumer secret, access token, access secret. 
 
ckey="" 
 
csecret="" 
 
atoken="-" 
 
asecret="" 
 

 
auth = OAuthHandler(ckey, csecret) 
 
auth.set_access_token(atoken, asecret) 
 

 
api = tweepy.API(auth) 
 

 

 
class listener(StreamListener): 
 

 
    def __init__(self, api=None): 
 
     self.api = api or API() 
 
     self.n = 0 
 
     self.m = 50 
 

 
    def on_data(self, data): 
 
     all_data = json.loads(data) 
 
     self.n = self.n+1 
 
     if self.n <= self.m: 
 
      tweet = all_data["text"] 
 
      username = all_data["user"]["screen_name"] 
 
      label = "1" 
 
      ttweets = TrainingTweets(label_id=label, tweet_username=username, tweet=tweet) 
 
      db.session.add(ttweets) 
 
      db.session.commit() 
 
      print((username, tweet)) 
 
      return True 
 
     else: 
 
      print("Successfully stored ", self.m, " tweets into database") 
 
      return False 
 

 
    def on_error(self, status): 
 
     print(status) 
 

 
auth = OAuthHandler(ckey, csecret) 
 
auth.set_access_token(atoken, asecret) 
 

 
twitterStream = Stream(auth, listener()) 
 
twitterStream.filter(track=["health"], languages=["en"], follow="")

누구든지 나를 Tweepy는 데이터베이스에 모든 중복 트윗을 대신 한 트윗을 저장하게하는 데 도움이 될 수 있습니다?

답변

0

트위터 사용자의 들어오는 트윗을 자동으로 데이터베이스에 저장하기 때문에 몇 가지 옵션이 있습니다. 당신은 할 수 :

  1. , 다음 데이터베이스로 세트의 요소를 저장 (AN '독특한 값의 정렬되지 않은 모음'이다) 세트로

    먼저 가게 트윗의 모든 - (아마도 일부 일정에 간격?). 다음은 세트에 대한 정보입니다. http://www.openbookproject.net/books/bpp4awd/ch06.html

  2. 프로그램의 논리는 그대로 둡니다. 마지막에는 중복 데이터베이스를 지 웁니다. 다음은 데이터베이스에서 중복 레코드를 삭제하는 방법에 대한 정보입니다. http://www.sqlteam.com/article/deleting-duplicate-records

관련 문제