2012-01-21 2 views
1

tweepy를 사용하여 twitter를 작성하고 짹짹 짹짹에 멘션을 검색 한 다음 트윗의 텍스트를 기반으로 액션을 구현합니다. 결국 저는 cron을 통해 몇 분마다 실행하려고합니다. 나는 파이썬 초보자이기 때문에 내 무지를 용서해 준다.twitter bot의 for 루프에 Python 저장 상태

내 문제로 인해 중복을 방지하고 있습니다. 내가 통과하고 트윗이 이전 트윗보다 큰지 여부를 확인하여 트윗이 새로운 것인지 테스트합니다. 그러나이 변수를 초기화 한 다음 루프의 끝에서 변경 내용을 저장하는 방법을 찾을 수 없습니다.

은 여기 내 전류 (파손) 코드 :

import sys 
import tweepy 

## OAuth keys go here. 

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) 
api = tweepy.API(auth) 

def ask_bot(): 
    old_id = 0 
    for tweet in api.mentions(): 
     if tweet.id > old_id: 
      print "@%s: %s" % (tweet.author.screen_name, tweet.text) 
      old_id = tweet.id + 1 
     else: 
      pass  

끝에 원하는 동작 이전에 인쇄되지 않은 경우에만 인쇄 트윗에 루프입니다.

답변

1

나는 단지 인쇄 된 ID 목록을 작성합니다. 그런 다음 인쇄하려는 ID가 이미 인쇄 된 목록에 있는지 단순히 확인하십시오. 그렇다면 아무것도하지 마십시오. 그렇지 않은 경우 인쇄하여 목록에 추가하십시오. 즉

: 나는 Tweepy에 대해 잘 모르는

import sys 
import tweepy 

## OAuth keys go here. 

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) 
api = tweepy.API(auth) 

printed_ids = [] 

def ask_bot(): 
    old_id = 0 
    for tweet in api.mentions(): 
     if tweet.id not in printed_ids: 
      print "@%s: %s" % (tweet.author.screen_name, tweet.text) 
      printed_ids.append(tweet.id) 
     else: 
      pass  
+0

예제 코드가 좋을 것입니다. – elijaheac

+0

@elijaheac, 편집 참조. – houbysoft

+0

완벽하게 작동합니다. 더 많은 데이터베이스 배경이 있지만 파이썬에서 내장 된 데이터 유형을 사용하는 데 익숙하지 않습니다. 고마워. –

2

,하지만이 도움이 될 수

import sys 
import tweepy 

## OAuth keys go here. 

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) 
auth.set_access_token(ACCESS_KEY, ACCESS_SECRET) 
api = tweepy.API(auth) 

seen_ids = [] 

def ask_bot(): 
    global seen_ids 
    for tweet in api.mentions(): 
     if tweet.id not in seen_ids:## Heading ##: 
      print "@%s: %s" % (tweet.author.screen_name, tweet.text) 
      seen_ids.append(tweet) 
     else: 
      pass 

그래서, 그것을위한 모든 트윗을 트위터를 통해 검색합니다, 그때 그것은 그 ID를 전에 보았는지를 점검 할 것입니다. global을 사용한 이유는 변경 사항이 주 변수 인 seen_ids에 영향을 미치기 때문에 함수 내부에서 만들어진 복사본이 아닙니다. 행운을 비네!