Universidade Estadual Paulista
Encontro Internacional Dados,
Tecnologia e Informação
Coletando dados do Twitter via Application
Programming Interface (API)
M.Sc. Fernando de Assis Rodrigues (@orionx7)
Departamento de Ciência da Informação
Faculdade de Filosofia e Ciências
Campus Marília, SP
Fernando de Assis Rodrigues - 2013 2
Este Slide está disponível em
http://www.slideshare.net/orionx7
Fernando de Assis Rodrigues - 2013 3
Objetivos
● Twitter
● API
● Python
● oAuth
● Exemplos
Fernando de Assis Rodrigues - 2013 4
Twitter
● Serviço
● http://twitter.com
● Rede Social
● 2006
● Jack Dorsey, Noah Glass, Evan Williams e Biz Stone
● Permite que seus usuários envie mensagens →
conhecidas como tweets
– Broadcasting: mensagens são enviadas muitos receptores
ao mesmo tempo
●
Fernando de Assis Rodrigues - 2013 5
Twitter
● US$ 140 milhões
● +900 funcionários
● Escritórios em diversas localidades
● Sede em São Francisco, CA - EUA
● Inclusive abrindo um no Brasil
– Jogos Olímpicos, Copa do Mundo...
● 140 milhões de usuários ativos
● 340 milhões de tweets por dia
● Top 5: Indonésia, Brasil, Venezuela, Holanda e Japão
Fernando de Assis Rodrigues - 2013 6
Twitter
● Rede Social
● Perfil privado/público
– Afeta diretamente o broadcasting
● Solicitações de amizade
– Seguidores e seguidos
● Cadastro
– Sem cadastro, pode observar perfil público
Fernando de Assis Rodrigues - 2013 7
Twitter
● Microblogging
● Tweets
– Limitados a 140 caracteres
– Geolocalização*
– Fotografia*
– Hyperlinks*
– Hashtags*
* itens opcionais
Fernando de Assis Rodrigues - 2013 8
Twitter
● Microblogging
● Retweets - “retuitar”
– Passar à frente para seus seguidores tweets de quem
você segue
● Diretamente
● Indiretamente: “RT:”
● Identificação de outros perfis
– Símbolo “@”
● @orionx7 estou ministrando uma oficina sobre api do #twitter
Fernando de Assis Rodrigues - 2013 9
Twitter
● Hashtags
● Usados para agrupar os tweets por tópicos
– Uso do símbolo “#” antes do tópico
● #ficadica
● #ironia
● #saúde
● #vergonha
– Hashtag spam
● Bom dia #bom #dia #bomdia #hahaha #sabadinho #sabado
#galera
Fernando de Assis Rodrigues - 2013 10
Twitter
Fonte: https://blog.twitter.com/2012/twitter-turns-six
Fernando de Assis Rodrigues - 2013 11
Twitter Notícias
Spam
Auto Promoção
“chitchat”
Retweets
Conversas
Fonte: Pear Analytics
Fernando de Assis Rodrigues - 2013 12
Twitter
● Trending Topics
● Análise do próprio twitter sobre os assuntos mais
“tuitados” em um determinado período de tempo
● Principalmente baseado em hashtags e na geolocalização
ou via faixa de ip
● Third-party Apps
● Aplicações que adicionam funcionalidades a estrutura do
Twitter
– http://twitcam.livestream.com – transmissão de vídeos via Twitter
– TweetDeck
Fernando de Assis Rodrigues - 2013 13
Twitter
● Openess
● Possibilidade de utilizar dados do twitter em outros
contextos
– Coletar dados
– Perfis Públicos
Fernando de Assis Rodrigues - 2013 14
Twitter
● Application Programming Interface (API)
● Protocolo para interface entre aplicações
● Permite o acesso aos dados de uma determinada
aplicação por aplicativos ou algoritmos criados por
terceiros
– Regras de negócio
Fernando de Assis Rodrigues - 2013 15
Twitter
DB
Twitter.com
API
TweetDeck
Twitter
Fernando de Assis Rodrigues - 2013 16
Twitter
● Basicamente
● Escrever um algoritmo
– Conecte
– Execute uma ação
– Recupere um dataset
– Seguindo as regras da API
● Twitter: https://dev.twitter.com/docs
Fernando de Assis Rodrigues - 2013 17
Twitter
● oAuth
● Sistema identificação de aplicações necessário
para criar aplicações que usam a base de dados do
Twitter
– https://dev.twitter.com/apps
Fernando de Assis Rodrigues - 2013 18
Twitter
● Create a new application
Fernando de Assis Rodrigues - 2013 19
Twitter
Fernando de Assis Rodrigues - 2013 20
Twitter
Fernando de Assis Rodrigues - 2013 21
Twitter
● Consumer key
● Consumer secret
Fernando de Assis Rodrigues - 2013 22
Twitter
● Criando um token, você autoriza sua nova
aplicação tenha acesso a sua conta do Twitter
Fernando de Assis Rodrigues - 2013 23
Python
Python is a programming language that lets you
work more quickly and integrate your systems
more effectively. You can learn to use Python and
see almost immediate gains in productivity and
lower maintenance costs.
Fernando de Assis Rodrigues - 2013 24
Python
● Instalando o python
● http://www.python.org/
● Instalando o python-oauth2
● https://github.com/simplegeo/python-oauth2
● Ou usando o python-pip
● pip install oauth2
Fernando de Assis Rodrigues - 2013 25
Coletando dados do Twitter via public
streaming
Fernando de Assis Rodrigues - 2013 26
Twitter
● Streaming API
● https://dev.twitter.com/docs/streaming-apis
● JSON – JavaScript Object Notation
– XML
– http://jsonviewer.stack.hu/
● Usando e adaptando o script:
● Gustav Arngården
● http://www.arngarden.com/2012/11/07/consuming-
twitters-streaming-api-using-python-and-curl/
Fernando de Assis Rodrigues - 2013 27
Twitter
1. Usando o script de Gustav Arngården
2. Adaptando o script
a. Parar e ver apenas um post completo
● Visualizando uma resposta em notação JSON
b. Parar e ver apenas alguns atributos de um post
c. Coletando os posts do streaming para um arquivo
CSV
Fernando de Assis Rodrigues - 2013 28
Obrigado!
fernando@elleth.org
@orionx7
Fernando de Assis Rodrigues - 2013 29
Hyperlinks
● http://www.arngarden.com/2012/11/07/consuming-twitters-
streaming-api-using-python-and-curl
●
https://github.com/simplegeo/python-oauth2
●
https://dev.twitter.com/docs/auth/tokens-devtwittercom
●
http://peter-hoffmann.com/2012/simple-twitter-streaming-api-access-
with-python-and-oauth.html
● https://www.google.com/webhp?sourceid=chrome-
instant&client=ubuntu&channel=cs&ion=1&ie=UTF-
8#newwindow=1&safe=off&client=ubuntu&hl=en&channel=cs&sclien
t=psy-ab&q=using%20python-pip%20on
%20windows&oq=&gs_l=&pbx=1&fp=de4d6cf3d1c4e680&ion=1&ba
v=on.2,or.r_cp.r_qf.&bvm=bv.45960087,d.eWU&biw=1366&bih=634
Fernando de Assis Rodrigues - 2013 30
Hyperlinks
● http://jsonviewer.stack.hu/
● http://docs.python.org/2/tutorial/inputoutput.html
#reading-and-writing-files
● http://en.wikipedia.org/wiki/Application_program
ming_interface#Object_API_and_protocols
● http://python.org/

Coletando dados do Twitter via Application Programming Interface (API)

  • 1.
    Universidade Estadual Paulista EncontroInternacional Dados, Tecnologia e Informação Coletando dados do Twitter via Application Programming Interface (API) M.Sc. Fernando de Assis Rodrigues (@orionx7) Departamento de Ciência da Informação Faculdade de Filosofia e Ciências Campus Marília, SP
  • 2.
    Fernando de AssisRodrigues - 2013 2 Este Slide está disponível em http://www.slideshare.net/orionx7
  • 3.
    Fernando de AssisRodrigues - 2013 3 Objetivos ● Twitter ● API ● Python ● oAuth ● Exemplos
  • 4.
    Fernando de AssisRodrigues - 2013 4 Twitter ● Serviço ● http://twitter.com ● Rede Social ● 2006 ● Jack Dorsey, Noah Glass, Evan Williams e Biz Stone ● Permite que seus usuários envie mensagens → conhecidas como tweets – Broadcasting: mensagens são enviadas muitos receptores ao mesmo tempo ●
  • 5.
    Fernando de AssisRodrigues - 2013 5 Twitter ● US$ 140 milhões ● +900 funcionários ● Escritórios em diversas localidades ● Sede em São Francisco, CA - EUA ● Inclusive abrindo um no Brasil – Jogos Olímpicos, Copa do Mundo... ● 140 milhões de usuários ativos ● 340 milhões de tweets por dia ● Top 5: Indonésia, Brasil, Venezuela, Holanda e Japão
  • 6.
    Fernando de AssisRodrigues - 2013 6 Twitter ● Rede Social ● Perfil privado/público – Afeta diretamente o broadcasting ● Solicitações de amizade – Seguidores e seguidos ● Cadastro – Sem cadastro, pode observar perfil público
  • 7.
    Fernando de AssisRodrigues - 2013 7 Twitter ● Microblogging ● Tweets – Limitados a 140 caracteres – Geolocalização* – Fotografia* – Hyperlinks* – Hashtags* * itens opcionais
  • 8.
    Fernando de AssisRodrigues - 2013 8 Twitter ● Microblogging ● Retweets - “retuitar” – Passar à frente para seus seguidores tweets de quem você segue ● Diretamente ● Indiretamente: “RT:” ● Identificação de outros perfis – Símbolo “@” ● @orionx7 estou ministrando uma oficina sobre api do #twitter
  • 9.
    Fernando de AssisRodrigues - 2013 9 Twitter ● Hashtags ● Usados para agrupar os tweets por tópicos – Uso do símbolo “#” antes do tópico ● #ficadica ● #ironia ● #saúde ● #vergonha – Hashtag spam ● Bom dia #bom #dia #bomdia #hahaha #sabadinho #sabado #galera
  • 10.
    Fernando de AssisRodrigues - 2013 10 Twitter Fonte: https://blog.twitter.com/2012/twitter-turns-six
  • 11.
    Fernando de AssisRodrigues - 2013 11 Twitter Notícias Spam Auto Promoção “chitchat” Retweets Conversas Fonte: Pear Analytics
  • 12.
    Fernando de AssisRodrigues - 2013 12 Twitter ● Trending Topics ● Análise do próprio twitter sobre os assuntos mais “tuitados” em um determinado período de tempo ● Principalmente baseado em hashtags e na geolocalização ou via faixa de ip ● Third-party Apps ● Aplicações que adicionam funcionalidades a estrutura do Twitter – http://twitcam.livestream.com – transmissão de vídeos via Twitter – TweetDeck
  • 13.
    Fernando de AssisRodrigues - 2013 13 Twitter ● Openess ● Possibilidade de utilizar dados do twitter em outros contextos – Coletar dados – Perfis Públicos
  • 14.
    Fernando de AssisRodrigues - 2013 14 Twitter ● Application Programming Interface (API) ● Protocolo para interface entre aplicações ● Permite o acesso aos dados de uma determinada aplicação por aplicativos ou algoritmos criados por terceiros – Regras de negócio
  • 15.
    Fernando de AssisRodrigues - 2013 15 Twitter DB Twitter.com API TweetDeck Twitter
  • 16.
    Fernando de AssisRodrigues - 2013 16 Twitter ● Basicamente ● Escrever um algoritmo – Conecte – Execute uma ação – Recupere um dataset – Seguindo as regras da API ● Twitter: https://dev.twitter.com/docs
  • 17.
    Fernando de AssisRodrigues - 2013 17 Twitter ● oAuth ● Sistema identificação de aplicações necessário para criar aplicações que usam a base de dados do Twitter – https://dev.twitter.com/apps
  • 18.
    Fernando de AssisRodrigues - 2013 18 Twitter ● Create a new application
  • 19.
    Fernando de AssisRodrigues - 2013 19 Twitter
  • 20.
    Fernando de AssisRodrigues - 2013 20 Twitter
  • 21.
    Fernando de AssisRodrigues - 2013 21 Twitter ● Consumer key ● Consumer secret
  • 22.
    Fernando de AssisRodrigues - 2013 22 Twitter ● Criando um token, você autoriza sua nova aplicação tenha acesso a sua conta do Twitter
  • 23.
    Fernando de AssisRodrigues - 2013 23 Python Python is a programming language that lets you work more quickly and integrate your systems more effectively. You can learn to use Python and see almost immediate gains in productivity and lower maintenance costs.
  • 24.
    Fernando de AssisRodrigues - 2013 24 Python ● Instalando o python ● http://www.python.org/ ● Instalando o python-oauth2 ● https://github.com/simplegeo/python-oauth2 ● Ou usando o python-pip ● pip install oauth2
  • 25.
    Fernando de AssisRodrigues - 2013 25 Coletando dados do Twitter via public streaming
  • 26.
    Fernando de AssisRodrigues - 2013 26 Twitter ● Streaming API ● https://dev.twitter.com/docs/streaming-apis ● JSON – JavaScript Object Notation – XML – http://jsonviewer.stack.hu/ ● Usando e adaptando o script: ● Gustav Arngården ● http://www.arngarden.com/2012/11/07/consuming- twitters-streaming-api-using-python-and-curl/
  • 27.
    Fernando de AssisRodrigues - 2013 27 Twitter 1. Usando o script de Gustav Arngården 2. Adaptando o script a. Parar e ver apenas um post completo ● Visualizando uma resposta em notação JSON b. Parar e ver apenas alguns atributos de um post c. Coletando os posts do streaming para um arquivo CSV
  • 28.
    Fernando de AssisRodrigues - 2013 28 Obrigado! fernando@elleth.org @orionx7
  • 29.
    Fernando de AssisRodrigues - 2013 29 Hyperlinks ● http://www.arngarden.com/2012/11/07/consuming-twitters- streaming-api-using-python-and-curl ● https://github.com/simplegeo/python-oauth2 ● https://dev.twitter.com/docs/auth/tokens-devtwittercom ● http://peter-hoffmann.com/2012/simple-twitter-streaming-api-access- with-python-and-oauth.html ● https://www.google.com/webhp?sourceid=chrome- instant&client=ubuntu&channel=cs&ion=1&ie=UTF- 8#newwindow=1&safe=off&client=ubuntu&hl=en&channel=cs&sclien t=psy-ab&q=using%20python-pip%20on %20windows&oq=&gs_l=&pbx=1&fp=de4d6cf3d1c4e680&ion=1&ba v=on.2,or.r_cp.r_qf.&bvm=bv.45960087,d.eWU&biw=1366&bih=634
  • 30.
    Fernando de AssisRodrigues - 2013 30 Hyperlinks ● http://jsonviewer.stack.hu/ ● http://docs.python.org/2/tutorial/inputoutput.html #reading-and-writing-files ● http://en.wikipedia.org/wiki/Application_program ming_interface#Object_API_and_protocols ● http://python.org/