Получайте обновления с временной шкалы в твиттере, используя твиты в python - PullRequest
0 голосов
/ 13 ноября 2018

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

(я использую python3)

Код для сбора данных с временной шкалы имени пользователя:

def get_tweets(api, username, limit):
alltweet =[]
fid2 = open('_3200unfilteredTweets.csv','w')

""" Download Tweets from username account """
for status in tqdm(tweepy.Cursor(api.user_timeline, screen_name=username,tweet_mode='extended').items(limit),
                   unit="tw", total=limit):

    alltweet.append(status.full_text)
#    store(status._json)        
    process_tweet(status)
for line in alltweet:
   fid2.write("%s\n"%line)

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

startDate = datetime(2011, 6, 1, 0, 0, 0)
endDate =   datetime(2012, 1, 1, 0, 0, 0)

tweets = []
tmpTweets = api.user_timeline(username)
for tweet in tmpTweets:
    if tweet.created_at < endDate and tweet.created_at > startDate:
        tweets.append(tweet)

while (tmpTweets[-1].created_at > startDate):
    tmpTweets = api.user_timeline(username, max_id = tmpTweets[-1].id)
    for tweet in tmpTweets:
        if tweet.created_at < endDate and tweet.created_at > startDate:
            tweets.append(tweet)

Пожалуйста, дайте мне знать, если есть какой-либо способ, которым я могу только получать обновления графика времени.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Вы должны проверить параметры потоковой передачи, которые предлагает Twitter API и tweepy. https://tweepy.readthedocs.io/en/v3.5.0/streaming_how_to.html

0 голосов
/ 13 ноября 2018

Да, есть способ сделать это.

Когда вы впервые получите свой список твитов, запишите идентификатор самого последнего твита.

При следующем вызове user_timeline вы можете добавить since_id=....

Получат все твиты, опубликованные после идентификатора вашего последнего твита.

Есть некоторые ограничения:

Возвращает результаты с идентификатором, превышающим (то есть более поздним, чем) указанный идентификатор. Существуют ограничения на количество твитов, к которым можно получить доступ через API. Если лимит твитов наступил с тех пор, как since_id, since_id будет вынужден использовать самый старый доступный идентификатор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...