Применение фильтра для извлечения твитов по некоторым хэштегам из определенной страны с использованием python - PullRequest
1 голос
/ 20 июня 2020

Я использую приведенный ниже сценарий python, чтобы получать твиты на #lockdownindia, #lockdownextension и # covid19, чтобы получать твиты из моей страны (ИНДИЯ) и выполнять анализ настроений. Для этого я использовал cursor () из библиотеки tweepy. Когда я использую #geocode:, это помогает мне, но из-за неточного радиуса я получаю твиты из соседних стран, таких как Пакистан, которые мне не нужны. Читая документацию Twitter , я узнал о place_country:, но он не работает. Он возвращает пустой фрейм данных. Любая помощь по использованию place_country: будет принята с благодарностью. Кроме того, возможно ли получить все атрибуты твита в одном go, как это происходит при использовании потокового API

consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''

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

api = tweepy.API(auth, wait_on_rate_limit=True)

query = '#lockdownindia OR #lockdownextension OR #covid19 -filter:retweets AND place_country:IN'     #['-filter:retweets place_country:IN']        #geocode:20.5937,78.9629,910mi
max_tweets = 100

tweets = tweepy.Cursor(api.search, q=query, since = "2020-06-05", until = "2020-06-21",lang="en").items(max_tweets)

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Привет, я проверил документацию, и похоже, что вы не должны указывать страну-место в своем запросе. Это один из атрибутов, который вы сможете найти в ответе JSON от Twitter. Я предлагаю проверить их сообщение JSON под атрибутом места для страны и с помощью al oop проверить, установлен ли он на Индию.

0 голосов
/ 22 июня 2020

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

import json, requests, time

Это должно помочь вам делать http-запросы к twitter api и манипулировать JSON ответ. Затем вы хотите установить свой HTTP-запрос. Я бы предложил установить для этого переменную. Вы можете получить это так.

myrequest = 'https://api.twitter.com/1.1/search/tweets.json?q=from%3Atwitterdev&result_type=mixed&count=2'

Наконец, вы должны сделать запрос GET к API Twitter. Я сохраню свой запрос в переменной response.

response = requests.request(method = "GET", url = myrequest)

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

result = json.loads(response.content)

Теперь у вас должно быть содержимое JSON, и вы можете заглянуть внутрь него так же, как и со словарем. Я раньше не использовал twitter API, но надеюсь, что это поможет. Это то, что я бы использовал с другими API.

Замечание: вот ссылка на то, как ваш http-запрос должен быть из твиттера. Удачи :)

...