Потоковый полный текст и URL твита в CSV-файл

Я пытаюсь транслировать твиты в режиме реального времени в файл CSV, в этом процессе я хочу извлечь полный текст и соответствующий URL (который имеет формат - https://twitter.com/user screen_name/ status /tweet id) из твит, который является ссылкой этого твита, а не ссылками, упомянутыми в твите пользователем.

Так как я использую потоковый API, опция tweet_mode=extended не будет работать для меня. Ниже приведен код, который я использую для извлечения данных, но только для определенных твитов я получаю полный текст вместе с URL-адресом, а для остальных - нет.

runtime = 10

class listener(StreamListener):

    def on_data(self,data):
        data1 = json.loads(data)
        time = data1["created_at"]
        if data1["truncated"] == "false":
            tweet = unidecode(data1["full_text"])              
        else:
            tweet = unidecode(data1["text"])
        url1 = data1["entities"]["urls"]
        b = None
        for a in url1:
            b = a["expanded_url"]
        if hasattr(data1,"retweeted_status:"):
            tweet = unidecode(data1["tweet"]["text"])
        url = b
        file = open('TEST_MAR.csv', 'a')
        csv_writer = csv.writer(file)
        csv_writer.writerow([time, tweet1, url])
        file.close()

auth = OAuthHandler(consumer_key,consumer_secret)
auth.set_access_token(access_token,access_token_secret)

twitterStream = Stream(auth, listener())
twitterStream.filter(track=["USA"], async = True)
time.sleep(runtime)
twitterStream.disconnect()

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

Пожалуйста, порекомендуйте.

0 ответов

Другие вопросы по тегам