Tweepy получить твиты, связанные с конкретной страной - PullRequest
0 голосов
/ 04 июня 2019

Контекст

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

То, что я пробовал

1.Первое решение

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

Я написал следующий код:

def get_tweets(query_fname, auth, max_time, location=None):
    stop = datetime.now() + max_time
    twitter_stream = Stream(auth, CustomListener(query_fname))
    while datetime.now() < stop:
        if location:
            twitter_stream.filter(locations=[11.94,-13.64,30.54,5.19], is_async=True)
        else:
            twitter_stream.filter(track=query, is_async=True)

Проблема этого подхода

  1. Не все позволили Твиттеру получить доступ к информации о его местоположении, и при таком подходе я могу получить только несколько твитов, например, около 300 твитов для моего местоположения.

  2. Некоторые люди не находятся встрана, но кто пишет в Твиттере о стране, и люди внутри страны отвечают им.Их твиты не учитываются этим подходом.

2. Второе решение

Другой подход заключался в сборе твитов с хэштегами, относящимися к стране скурсор

Я пробовал этот код:

def query_tweet(client, query=[], max_tweets=2000, country=None):
    """
    query tweets using the query list pass in parameter
    """
    query = ' OR '.join(query)
    name = 'by_hashtags_'
    now = datetime.now()
    today = now.strftime("%d-%m-%Y-%H-%M")
    with open('data/query_drc_{}_{}.jsonl'.format(name, today), 'w') as f:
        for status in Cursor(
                client.search,
                q=query,
                include_rts=True).items(max_tweets):
            f.write(json.dumps(status._json) + "\n")

Задача

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

3.Третий подход

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

Мои вопросы

  • Как я могу получить все твиты о конкретной стране?Я имею в виду все, что люди пишут в Твиттере для конкретной страны с или без хэштегов для конкретной страны?

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

С уважением.

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