Потоковый полный текст и URL твита в CSV-файл - PullRequest
0 голосов
/ 03 марта 2019

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

Поскольку я использую потоковый 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для любого сценария - будь то классический твит или расширенный твит, но результаты не являются желаемыми.

Пожалуйста, сообщите.

...