Neste post vamos criar um crawler para recuperar tweets públicos. Tweets públicos são aqueles que não necessitam de autenticação, ou seja, não é necessário ter uma conta no Twitter para ler esses tweets. Com Python, é bem simples recuperar qualquer status do Twitter, para isso, vamos utilizar o pacote python-twitter, que pode ser instalado via setuptools:
$ easy_install python-twitter
Ou, pode ser baixado neste link. Para instalar, extraia o conteúdo, vá até a pasta onde foi extraído e faça:
$ python setup.py build $ python setup.py install
O python-twitter provê acesso a API do Twitter via código Python.
Para ler a Api e buscar ajuda, faça:
$ pydoc twitter.Status $ pydoc twitter.User $ pydoc twitter.DirectMessage
Para começar a utilizar o python-twitter, basta importar o pacote e criar uma instância da classe twitter.Api():
import twitter api = twitter.Api()
Então, é possível obter os últimos tweets públicos facilmente com a função GetPublicTimeline, que retorna uma lista contendo em torno de 20 objetos do tipo twitter.Status, o texto do tweet em si está no atributo text:
tweets = api.GetPublicTimeline()
for tweet in tweets:
print tweet.text
Agora, para recuperar os 20 últimos tweets de um usuário específico, existe a função GetUserTimeline. Trocando ‘user‘ por um usuário real do twitter no código abaixo, você obtém uma lista semelhante a que foi retornada pela função GetPublicTimeline:
user_tweets = api.GetUserTimeline('user')
for tweet in user_tweets:
print tweet.text
A função GetUserTimeline permite configurar a quantidade de tweets a serem recuperados através do parâmetro count:
user_tweets = []
tweets = api.GetUserTimeline(user, count=30)
for tweet in tweets:
user_tweets.append(tweet.text.encode('utf-8') + '\n')
print user_tweets
Neste código utilizei a função encode para imprimir caracteres especiais em português.
Você pode encontrar mais detalhes das funções mostradas aqui na documentação da API, basta fazer no terminal:
$ pydoc twitter.Api









