2014-12-12 2 views
1

Twython을 사용하여 Twitter의 REST API를 통해 데이터를 가져옵니다. 트위터 속도 제한에 도달 할 때까지 코드를 자동으로 휴식시킨 다음 다시 쿼리를 시작하겠습니다.Python의 Twython에서 Twitter의 속도 제한을 수용합니다.

for user in first_ids: 
    try: 
     followers = twitter.get_followers_ids(user_id=user, count=600) 
     for individual in followers['ids']:  
      if individual not in ids: 
       ids.append(individual) 
    except TwythonRateLimitError as error: 
     remainder = float(twitter.get_lastfunction_header(header='x-rate-limit-reset')) - time.time() 
     time.sleep(remainder) 
     continue 

내가 그것을 실행하면 나는 다음과 같은 오류가 발생합니다 : :. "연결이 중단 10054을 오류 : 여기

트위터 ID 목록을 받아 목록에 자신의 followers'IDs를 추가하는 코드입니다 기존 연결이 원격 호스트에 의해 강제로 닫혔습니다. "

오류 란 무엇을 의미합니까? 트위터의 속도 제한과 관련이 있다고 상상해 봅니다. 다른 방법이 있습니까?

+0

어떤 라인이 오류를 발생시키는가? – brobas

+0

내가 게시 한 세 번째 줄입니다. 첫 번째 요청입니다. 오류가 발생하기 전에 약 4500 ID를 얻을 수 있어요 –

+1

커서가 커서 페이지 당 200 개 밖에 허용되지 않는지 확실하지 않은 경우 – jmercouris

답변

1

프로그램을 잠자기하는 동안 연결을 열린 상태로 두려면 수동으로 닫은 다음 절전 시간 초과 후 다시 연결하십시오. 뭔가 같은 : 당신은 REST API를 사용하는 경우

except TwythonRateLimitError as error: 
     remainder = float(twitter.get_lastfunction_header(header='x-rate-limit-reset')) - time.time() 
     twitter.disconnect() 
     time.sleep(remainder) 
     twitter = Twython(APP_KEY, APP_SECRET,OAUTH_TOKEN, OAUTH_TOKEN_SECRET) 
     continue 
+0

미안합니다. 명확히해야합니다. 스트리밍이 아닌 REST API를 사용하고 있습니다. –

+0

그것은 나를이 오류'AttributeError : 'Twython'객체에 'disconnect'' 속성이 없습니다. –

0

당신이 단순히 사용 .disconnect()를 사용하는 대신 API를 삭제 동일한 솔루션을 사용할 수 있습니다

del twitter 

대신

twitter.disconnect() 

나는 똑같은 문제가있어서 나를 위해 일했다.

관련 문제