2016-03-25 11 views
-2

私は、これを絶対に新しくしており、Southwestのつぶやきを集める必要があります。私が間違っていることは何ですか?そして、何か&私は特定の会社名が必要な場合はどこに書かなければならないのですか?ありがとうございました。Pythonシェルでエラーが発生するIndexError:リストインデックスが範囲外にある

line 32, in get_all_tweets 
    oldest = alltweets[-1].id - 1 
    IndexError: list index out of range 

    auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
    auth.set_access_token(access_key, access_secret) 
    api = tweepy.API(auth) 
    alltweets = [] 
    new_tweets = api.user_timeline(screen_name = screen_name,count=200) 

    alltweets.extend(new_tweets) 

    oldest = alltweets[-1].id - 1 

    while len(new_tweets) > 0: 
     print "getting tweets before %s" % (oldest) 

     new_tweets = api.user_timeline(screen_name = screen_name,count=200,max_id=oldest) 

     alltweets.extend(new_tweets) 

     oldest = alltweets[-1].id - 1 
     print "...%s tweets downloaded so far" % (len(alltweets)) 

    outtweets = [[tweet.id_str, tweet.created_at, tweet.text.encode("utf-8")] for tweet in alltweets] 

    with open('%s_tweets.csv' % screen_name, 'wb') as f: 
     writer = csv.writer(f) 
     writer.writerow(["id","created_at","text"]) 
     writer.writerows(outtweets) 
    pass 
if __name__ == '__main__': 
    #pass in the username of the account you want to download 
    get_all_tweets("Tverichanka" 

+1

関連タグとタイトルを選択してください。この質問はシェルに関するものではありません。 –

答えて

0

new_tweetsをプリントアウトし、あなたが取得しているものを見てください。あなたのエラーは、おそらく、new_tweetsが見つかりませんでした。実際にデータをダウンロードしていますか?それ以外の場合は、空のリストの最後の要素を取得し、そのエラーを取得しようとしています。

alltweets = [] 
alltweets.extend([]) # if new_tweets is empty will cause alltweets to remain empty 
oldest = alltweets[-1].id - 1 # can't get the last element of an empty list. 

私はwhileループの直前の行について話しています。

1

このエラーは、リストalltweetsが空であることを示しています。これは、戻り値がapi.user_timeline(screen_name = screen_name,count=200)であることを意味します。[]です。

これは、いくつかの異なる問題が原因である可能性があります。そのうちの1つは、使用しているscreen_nameにタイプミスがある可能性があります。