-
-
Save EricMarques/5bcaa21fa307411638bb60b651be32f2 to your computer and use it in GitHub Desktop.
# Instala o pacote tweepy | |
#!pip install tweepy | |
# Importando os módulos Tweepy, Datetime e Json | |
from tweepy.streaming import StreamListener | |
from tweepy import OAuthHandler | |
from tweepy import Stream | |
from datetime import datetime | |
import json | |
# Consumer Key | |
consumer_key = "consumer_key" | |
# AConsumer Secret | |
consumer_secret = "consumer_secret" | |
# Access Token | |
access_token = "access_token" | |
# Access Token Secret | |
access_token_secret = "access_token_secret" | |
# Criar as chaves de autenticação | |
auth = OAuthHandler(consumer_key, consumer_secret) | |
auth.set_access_token(access_token, access_token_secret) | |
# Classe para capturar os stream de dados do Twitter e armazenar no MongoDB(Banco de Dados) | |
class MyListener(StreamListener): | |
def on_data(self, dados): | |
tweet = json.loads(dados) | |
created_at = tweet["created_at"] | |
id_str = tweet["id_str"] | |
in_reply_to_screen_name = tweet["in_reply_to_screen_name"] | |
text = tweet["text"] | |
obj = {"created_at":created_at,"id_str":id_str, "in_reply_to_screen_name": in_reply_to_screen_name, "text":text, } #"name" : ["user"]["name"], "screen_name" : ["user"]["screen_name"], | |
tweetind = col.insert_one(obj)#.inserted_id | |
print (obj) | |
return True | |
# Criando o objeto mylistener | |
mylistener = MyListener() | |
# Criando o objeto mystream | |
mystream = Stream(auth, listener = mylistener) | |
# Importando do PyMongo o módulo MongoClient | |
from pymongo import MongoClient | |
# Conexão ao MongoDB | |
client = MongoClient('localhost', 27017) | |
# Criando o banco de dados twitterdb | |
db = client.twitterdb | |
# Criando a collection "col" | |
col = db.tweets | |
# Lista de palavras chave para buscar nos Tweets - Agências Espaciais | |
keywords = ['@NASA', '@SANSA7', '@AFSpace', '@CNSA_en', '@esa', '@isa', '@ILSpaceAgency', '@ASI_spazio', '@isro', '@JAXA_en', '@CNES', '@roscosmos',] | |
# Iniciando o filtro e gravando os tweets no MongoDB | |
mystream.filter(track=keywords) | |
#Fechando conexão com mystream | |
mystream.disconnect() |
muito legal Eric, mas como faria para pegar os extended tweets? por que nesse modo, os tweets aparecem truncados em 140 carcteres, o que modificar?
Opa... blz @fabiomathu... olha só... quando fiz esta sugestão de código, utilizei o limite "antigo" doas caracteres do Tweets, ou seja, antes de Novembro de 2017 o máximo de caracteres dos Tweets eram o total de 140, atualmente esta quantidade foi "dobrada", ou seja, os tweets possuem até 280 caracteres.
Para que seja possível você coletar esta informação, você deve alterar o atributo "text" para "full_text".
Recomendo você dar uma olhada na documentação da biblioteca Tweepy.
http://docs.tweepy.org/en/latest/extended_tweets.html?highlight=character#introduction
Boa tarde Fabio!
Podemos sim, só marcar dia e horário que vejo se consigo entrar em conferência com você.
Veja se consegue me encontrar no skype pelo meu e-mail...
erc_m@hotmail.com
Streaming