Загрузите исторические твиты более месяца назад

Я пытаюсь загрузить твиты из прошлых месяцев между определенным диапазоном дат. Я могу загрузить только через неделю, но не мимо.

Код:

import tweepy from tweepy import Stream from tweepy import OAuthHandler from tweepy.streaming import StreamListener import pandas as pd import json import csv import sys import time ckey = 'key' csecret = 'key' atoken = 'key' asecret = 'key' def toDataFrame(tweets): DataSet = pd.DataFrame() DataSet['tweetID'] = [tweet.id for tweet in tweets] DataSet['tweetText'] = [tweet.text.encode('utf-8') for tweet in tweets] DataSet['tweetRetweetCt'] = [tweet.retweet_count for tweet in tweets] DataSet['tweetFavoriteCt'] = [tweet.favorite_count for tweet in tweets] DataSet['tweetSource'] = [tweet.source for tweet in tweets] DataSet['tweetCreated'] = [tweet.created_at for tweet in tweets] DataSet['userID'] = [tweet.user.id for tweet in tweets] DataSet['userScreen'] = [tweet.user.screen_name for tweet in tweets] DataSet['userName'] = [tweet.user.name for tweet in tweets] DataSet['userCreateDt'] = [tweet.user.created_at for tweet in tweets] DataSet['userDesc'] = [tweet.user.description for tweet in tweets] DataSet['userFollowerCt'] = [tweet.user.followers_count for tweet in tweets] DataSet['userFriendsCt'] = [tweet.user.friends_count for tweet in tweets] DataSet['userLocation'] = [tweet.user.location for tweet in tweets] DataSet['userTimezone'] = [tweet.user.time_zone for tweet in tweets] DataSet['Coordinates'] = [tweet.coordinates for tweet in tweets] DataSet['GeoEnabled'] = [tweet.user.geo_enabled for tweet in tweets] DataSet['Language'] = [tweet.user.lang for tweet in tweets] tweets_place= [] #users_retweeted = [] for tweet in tweets: if tweet.place: tweets_place.append(tweet.place.full_name) else: tweets_place.append('null') DataSet['TweetPlace'] = [i for i in tweets_place] #DataSet['UserWhoRetweeted'] = [i for i in users_retweeted] return DataSet OAUTH_KEYS = {'consumer_key':ckey, 'consumer_secret':csecret,'access_token_key':atoken, 'access_token_secret':asecret} auth = tweepy.OAuthHandler(OAUTH_KEYS['consumer_key'], OAUTH_KEYS['consumer_secret']) #auth = tweepy.AppAuthHandler('key', 'key') api = tweepy.API(auth, wait_on_rate_limit=True,wait_on_rate_limit_notify=True) if (not api): print ("Can't Authenticate") sys.exit(-1) else: # I am trying to download from Dec 1st to Dec 7th but I am not able to cursor = tweepy.Cursor(api.search, q='#chennairains OR #chennaihelp OR #chennaifloods',since= '2015-12-20',until='2015-12-21',lang='en',count=100) results=[] for item in cursor.items(): results.append(item) DataSet = toDataFrame(results) DataSet.to_csv('output.csv',index=False) 

Программа очень хорошо загружает данные в течение недели, но не может загружаться с более чем за неделю. Я попробовал ссылку на несколько сообщений здесь, но большинство из них остались без ответа. Любые предложения приветствуются.

Twitter ограничивает объем данных, возвращаемых из REST API, а класс API Tweepy использует API REST Twitter.

От https://dev.twitter.com/overview/general/things-every-developer-should-know :

Существуют ограничения на разбиение на страницы. Ограничение клиента API доступа может получить теоретический максимум 3200 статусов с помощью параметров страницы и подсчета для методов API REST user_timeline. Другие временные методы имеют теоретический максимум 800 статусов. Запросы более чем на лимит приведут к ответу с кодом состояния 200 и пустым результатом в запрошенном формате. Twitter по-прежнему поддерживает базу данных всех твитов, отправленных пользователем. Однако для обеспечения эффективности сайта этот искусственный лимит временно установлен.

Если вы пытаетесь получить более длинный ответ, платные сервисы, такие как Gnip и DataSift, могут предоставить эти данные.