Resum del 2n taller – primer exemple

benvolguts / benvolgudes,

després de la merescuda aturada estiuenca, reprenem els tallers (en un parell de setmanes tenim el tercer) resumint el passat segon taller dedicat a la captura i preprocessament de les dades.

En aquell taller vàrem presentar tres exemples; en aquesta entrada ens centrarem en el primer, posteriorment afegirem els altres dos:

  1. Captura del flux de tweets de Twitter.
  2. Scraping d’una web.
  3. Ús de Google Refine per manipular dades.

Captura del flux de tweets de Twitter

Twitter s’ha convertit en un mitjà de comunicació instantani on és possible trobar informació de, virtualment, qualsevol cosa. El problema és, però, com capturar “tota” la informació que genera Twitter. “Tota” és impossible, tant pel volum (centenars de milions d’usuaris i un nombre de tweets encara més gran) com per les restriccions imposades per l’API de Twitter. El que podem fer és fer cerques en temps real que, excepte en alguns casos, ens permetran capturar tota l’activitat d’un usuari o grup d’usuaris o, el que acostuma a ser més interessant, l’activitat al voltant d’un terme de cerca o #hashtag.

Hi ha moltes maneres de capturar el que passa a Twitter. Una que funciona raonablement bé és twitter-streamer, una utilitat de línia de comandes desenvolupada en Python i basada en Tweepy. Per fer-la funcionar ens cal:

  • Instal·lar Python 2.7 + pip (es tracta d’un paquet de Python per instal·lar fàcilment altres paquets; per instal·lar pip cal primer insta·lar setuptools). Si teniu un CentOS (una distribució Linux específica) podeu veure com fer-ho aquí.
  • Instal·lar tweepy mitjançant pip. En funció de la vostra instal·lació de Python, potser necessitareu paquets addicionals, usant també pip.
pip install tweepy
  • Descarregar-se twitter-streamer.
  • Crear un compte a twitter “fals” i usar-lo per donar d’alta una aplicació, amb l’objectiu d’obtenir les credencials necessàries per poder accedir a Twitter mitjançant el servei OAuth 2.0; també podeu usar el vostre usuari de Twitter però per fer proves és millor usar un altre compte ja que estarem generant claus (credencials) contínuament:
    • Anar a http://dev.twitter.com i fer login amb l’usuari de Twitter que haguem decidit utilitzar.
    • Aneu a “My applications” i creeu una nova aplicació, omplint amb qualsevol cosa el nom, descripció i una URL (millor si és versemblant, especialment el nom que ha de ser un identificar únic que recordeu). El camp Callback URL el deixeu en blanc. Accepteu les condicions.
    • Un cop creada l’aplicació, a la pestanya API Keys trobareu la informació necessària per les credencials OAuth 2.0, concretament API key i API secret, però també necessitem crear un token; hem d’anar a Permissions i fer Update settings. Quan tornem a la pestanya API Keys veurem abaix “Your access token“, amb els camps Acces token i Acces token secret.
  • Configureu les variables d’entorn CONSUMER_KEY, CONSUMER_SECRET, ACCESS_KEY i ACCESS_SECRET amb els valors anteriors.
  • Ja podeu executar la cerca amb la comanda següent:
python2.7 streamer.py "#hashtag" > captura

Això generarà un fitxer “captura” amb els tweets que continguin el #hasthag indicat.

Per fer tot això necessiteu un entorn de treball adequat; si teniu un PC amb una distribució Linux segurament ja teniu la meitat de la feina feta. Si teniu un Mac, podeu mirar d’instal·lar Python i tota la resta de coses amb una mica de paciència, ja que els Mac per “sota” (si obriu un terminal, p.e.) utilitzen un Linux. Si teniu un PC amb Windows, també es pot amb encara més paciència. Un altre opció és que us descarregueu una distribució de Linux d’aquestes que es poden montar en una màquina virtual o executar arrencant des del CD o per USB.

És més fàcil fer-ho que explicar-ho! A la web trobareu un munt d’informació de cadascun dels punts descrits. Si ho intenteu i no us en sortiu, no dubteu en deixar un comentari amb el vostre problema / dubte i mirarem d’ajudar-vos. I al contrari, si algú ho fa i vol explicar la seva experiència, també serà molt ben rebuda.

Salutacions,

Julià

 

VN:F [1.9.22_1171]
Rating: 8.0/10 (1 vote cast)
Resum del 2n taller - primer exemple, 8.0 out of 10 based on 1 rating

2 pensaments a “Resum del 2n taller – primer exemple”

  1. Hola Julià,

    Moltes gràcies per explicar l’eina! Sembla molt interessant!!

    Saps si existeix una eina similar per recollir informació, en aquest cas, de LinkedIn? A la pràctica que estem fent el grup d’ofertes de feina, ens agradaría extreure informació d’ofertes de feina publicades per empreses en aquesta plataforma, durant un període de temps determinat (el que portem de 2014, per exemple).

    De moment, hem trobat aquesta eina a APIGEE (Job Search) que permet fer una query a la API de LinkedIn, introduint els parámetres adients per la cerca, i ens retorna un XML amb dades de les ofertes de feina: https://apigee.com/console/linkedin?authTypeVal=oauth2&afterSuccessfulAuth=true&req=%7B%22resource%22%3A%22searchjobs%22%2C%22params%22%3A%7B%22query%22%3A%7B%7D%2C%22template%22%3A%7B%7D%2C%22headers%22%3A%7B%7D%2C%22body%22%3A%7B%22attachmentFormat%22%3A%22mime%22%2C%22attachmentContentDisposition%22%3A%22form-data%22%7D%7D%2C%22verb%22%3A%22get%22%7D

    El problema d’aquesta eina és que hem de fer una crida manual (query) per cada vegada que volem canviar el valor d’un paràmetre… Complicat de gestionar si volem extreure dades amb diferents valors, per exemple, al paràmetre de data de publicació de les ofertes… Entenem que hauriem de crear un script que ens vagi canviant els valors dels paràmetres, és correcte? Hi ha algun exemple o eina que faci això ja?

    Moltes gràcies pel suport!!
    Mercè

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    1. cert, lo més fàcil seria programar un script amb totes les crides, canviant els valors dels paràmetres, podeu fer-ho només amb bash (la línia de comandes de Linux)

      salutacions

      Julià

      VN:F [1.9.22_1171]
      Rating: 0.0/5 (0 votes cast)

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *