sábado, 27 de outubro de 2012

InterCon 2012 - Social Mining para métricas. Extraindo dados direto dafonte

Oi pessoal, tudo bem? O blog andou um pouco parado nos últimos tempos, mas hoje eu tenho um ótimo motivo para quebrar essa monotonia por aqui, do InterCon 2012! Esta foi a nona edição de um evento que já é bem conhecido pelos profissionais de métricas, publicitários e até desenvolvedores. Eu confesso que não conhecia o evento - essa foi minha primeira participação - mas fiquei muito impressionado com a organização, infra, nível das palestras e todas aquelas coisas que costumam ser criticadas em grandes eventos. Aproveito para deixar meus parabéns ao iMasters e os organizadores!

Alem de ser minha primeira participação, ainda fui convidado a palestrar com meu amigo e colega de trabalho Vitor Franchito sobre Social Mining para métricas por um dos organizadores e também amigo de trabalho, o Leo Naressi. Nosso objetivo era mostrar, de forma prática, como extrair dados das redes sociais e como analisar estes dados para melhor aproveita-los para uma marca, e, claro, minha parte era a extração dos dados =D. Para isso desenvolvi alguns pequenos exemplos que gostaria de compartilhar com vocês!


Acredito que todas as palestras do evento foram filmadas, então pretendo colocar o link do vídeo aqui assim que estiver disponível. Também vamos colocar a apresentação no SlideShare e assim que ficar pronto adiciono aqui. Agora vamos aos exemplos!


O primeiro exemplo apresentado foi sobre os Followers de uma pessoa no Twitter! Esse é bem simples, já que não precisei nem me autenticar na API.

Para testar o script basta chamar o arquivo com o python e passar o nome de um usuário do Twitter.

O script imprime o ID, username e qtd de followers de cada um dos seguidores. O código esta comentado e é auto explicativo.

O importante é ressaltar que a API do Twitter impõe limites de requests para seus usuários e que esse limite é menor quando não nos autenticamos. Veja mais sobre isso aqui https://dev.twitter.com/docs/rate-limiting/1.1. Outro fator importante é que foi lançada a versão 1.1 da API e as novidades podem ser vistas aqui https://dev.twitter.com/docs/api/1.1/overview

O outro exemplo de Twitter mostra quem deu RT em um determinado post. O código é muito parecido, o que muda mesmo é o endereço para o qual fazemos a requisição.

Nesse exemplo a entrada é feita como no anterior, a diferença é que dessa vez entramos com o ID de um post, como por exemplo https://twitter.com/_dp6/status/261804809974317056

O terceiro e último exemplo prático é relacionado a Facebook e tem como objetivo mostrar as pessoas que deram like em um post de uma fan page. Este exemplo não pode ser tão simples quanto os anteriores pois  não é possível pegar estas opções sem autenticação. Para tal é preciso criar um app no Facebook - https://developers.facebook.com/docs/appsonfacebook/tutorial/

Com o App criado já podemos ir para o código. Vejam abaixo:

Ao executar este script pela primeira vez, será aberta uma janela do navegador pedindo permissões para sua App recém criada. Ao conceder as permissões, o Facebook fará uma requisição HTTP para a URL informada na criação de sua App com um parâmetro chamado code. Como não temos um aplicativo web esperando por requisições HTTP, o jeito é pegar o conteúdo deste parâmetro presente no navegador e copia-lo no terminal (e dar enter). Depois disso, usamos esse code na próxima requisição para obter o access token, que será usado em todas as requisições à API. Com isso estamos autenticados e podemos pegar as informações que desejamos.

Este "pulo do gato" relacionado ao parâmetro code eu encontrei no livro Mining the Social Web do escritor Matthew Russell. O livro é muito bom, tem vários exemplos em Python e também mostra varias analises que podemos fazer com estes dados.

Neste exemplo as entradas do script são o nome da fan page e o ID do post.

Estes foram os exemplos práticos da palesta. Falei também sobre como conseguimos pegar informações sobre os compartilhamentos no Facebook, informação que não é disponibilizada pela API, mas este é um assunto bem mais complexo e merece um post só para ele!

Espero que estas informações sejam úteis e que possam ajudar muitas pessoas. Se houverem dúvidas postem aqui no blog que tentarei responder a todas. Assim que os slides e o vídeo estiverem prontos eu publicarei aqui.

Um grande abraço!