otra forma de escuchar a través de internet (bime), gonzalo ruiz

57
Otra forma de escuchar a través de Internet Gonzalo Ruiz – [email protected] 31 de octubre de 2014

Upload: aragon-open-data

Post on 15-Jul-2015

56 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Otra forma de escuchar a través de Internet Gonzalo Ruiz – [email protected]

31 de octubre de 2014

Page 2: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Índice •  Introducción •  Qué es el scraping •  Qué hemos hecho en Aragon Open

Social Data •  Qué ofrecemos al público

•  Cómo se puede utilizar en el ámbito de la música

31 de octubre de 2014 2

Page 3: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Qué es el BIFI •  Instituto de Biocomputación y Física de

Sistemas Complejos de la Universidad de Zaragoza

•  Multidisciplinariedad – Bioquímica – Biofísica – Física – Computación

31 de octubre de 2014 3

Page 4: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Redes complejas •  Grafo con una serie de características

especiales (estructura en comunidades, jerarquía, etc.)

•  Ej.: las redes sociales, foros, prensa online, Internet… -> datos relacionados

•  Experimentos dilema del prisionero, análisis del movimiento del 15m, Universidad de Zaragoza, collective music experiment en SONAR, etc.

31 de octubre de 2014 4

Page 5: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Kampal •  Este tipo de análisis tiene mucho

potencial: – Marketing

– Prensa –  Imagen de marca – Toma de decisiones estratégicas

•  Creación de una spin-off para ofrecer estos servicios a empresas

31 de octubre de 2014 5

Page 6: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Jacathon

31 de octubre de 2014 6

Page 7: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Qué es el scraping •  Internet es una gran base de datos •  Algunos sitios proveen herramientas

para descargarlos (APIs, servicios web, etc.) -> JSON, XML

•  En los que no, el formato es muy heterogéneo -> HTML, XML, KML, AJAX

•  Técnica para extraer datos de sitios web a través de programas

31 de octubre de 2014 7

Page 8: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Scraper •  Programas que simulan las visitas que

muchos usuarios harían •  Normalmente el usuario ve la

información a través de un navegador

•  Problemas según las fuentes: – Cuestiones legales – Límites

31 de octubre de 2014 8

Page 9: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Tecnologías •  Existen multitud de librerías en distintos

lenguajes (Java, Python, Ruby, …) •  Necesitamos esencialmente – Librería para la conexión (urllib, requests…)

– Librería para parseo y extracción de datos •  HTML y XML (Beautifulsoup, lxml…)

•  JSON (json, simplejson)

– Almacenamiento de datos en ficheros, bases de datos, …

31 de octubre de 2014 9

Page 10: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Dificultades •  En ocasiones es necesario – Autenticación – Enviar formularios

– Enviar cabeceras – Cookies de sesión

•  Requieren trabajo de ingeniería inversa •  A veces no es posible emular el

navegador -> utilizar un webdriver

31 de octubre de 2014 10

Page 11: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Ejemplo I

31 de octubre de 2014 11

http://docs.python-requests.org/en/latest/

Page 12: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Ejemplo II

31 de octubre de 2014 12

http://www.crummy.com/software/BeautifulSoup/bs4/doc/

Page 13: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Ejemplo III

31 de octubre de 2014 13

http://selenium-python.readthedocs.org/

Page 14: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Buenas prácticas •  Mira el robots.txt de los sitios que vayas a

scrapear –  Honestamente, habría que mirar también las

cabeceras x-robots en HTTP y las tag robots en el HTML

•  Controla la velocidad. Si el sitio va lento, baja la presión.

•  Y al revés, para más velocidad usa múltiples IPs, varios scrapers, lanza proxies en la nube…

•  No mientas en el UserAgent e indica al sysadmin una forma de contactarte: email, web…

31 de octubre de 2014 14

Page 15: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Qué hemos hecho en Aragón Open Social Data

•  ¿De qué se habla en Aragón? •  ¿Qué es importante para los

aragoneses? •  ¿Qué puede resultar interesante para los

aragoneses?

•  ¿En qué se diferencian los aragoneses del resto de España?

31 de octubre de 2014 15

Page 16: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Qué fuentes capturamos •  Eventos: Facebook Events, Spain-info •  Texto: Twitter, Facebook, Google+, Blogger,

Blogia, Wordpress •  Wiki: Wikipedia •  Video: Youtube, Vimeo •  Imágenes: Instagram, Flickr, Pinterest •  Lugares: Foursquare •  Código: Github •  Prensa: Heraldo de Aragón, El Periódico de

Aragón, Diario del Alto Aragón, Diario de Teruel

31 de octubre de 2014 16

Page 17: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Qué datos capturamos •  Siempre datos públicos •  Que cualquier usuario puede encontrar

por sus propios medios •  Se puede controlar el contenido: – por la URL

– por el autor

•  Un usuario puede solicitar dejar de ser escuchado

31 de octubre de 2014 17

Page 18: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Criterios de captura •  Geoposición – Dentro de Aragón – Zonas colindantes – Nombres de municipios

•  Palabras/usuarios clave – Temas de interés – Usuarios relevantes para Aragón – Se realimentan y actualizan con los datos

geoposicionados

31 de octubre de 2014 18

Page 19: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Temas de interés

31 de octubre de 2014 19

Page 20: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Temas de interés

31 de octubre de 2014 20

Page 21: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Cómo se captura •  Normalmente el usuario ve la

información a través de un navegador •  Necesitamos capturar grandes

volúmenes de información constante

•  Filtrado por diferentes criterios •  Herramientas que las redes sociales y

otras webs proveen •  Límites de las fuentes

31 de octubre de 2014 21

Page 22: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Cómo se captura •  Robots, arañas, web crawlers,

scrapers… •  Simulan las visitas que muchos

usuarios harían •  Cada uno se ocupa de una tarea – Una red social – Sólo cierta información

•  Centralizan la información – Filtran y “uniformizan” -> ETL

31 de octubre de 2014 22

Page 23: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Cómo se procesa la información

•  Se solicitan sólo los campos que nos interesan, se obvian los demás

•  2 tipos: streaming o periódicas •  Las arañas no saben qué contenido es bueno o

malo –  Se captura mucho ruido, especialmente al buscar

por palabra clave –  No se deben de usar palabras demasiado cortas o

sin significado (preposiciones, artículos…) –  Hay que tener cuidado con otros idiomas. Ej.: CAI,

USJ

31 de octubre de 2014 23

Page 24: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Cómo se almacena •  Todos los datos son guardados en una

base de datos distribuida •  La cantidad de información capturada

es importante

•  En torno a 30 GB al mes, que se reducen a unos 3 GBs al filtrar

•  Alrededor de 1.000.000 de entradas al mes entre vídeos, fotos, mensajes, etc.

31 de octubre de 2014 24

Page 25: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Procesamiento •  Detección de idioma •  Se almacena el criterio que ha hecho que

cierto contenido se capture •  Se calculan ciertos parámetros en base a

los datos capturados: – Apariciones por cada 1000 palabras de dentro

y fuera de Aragón: •  Temas de interés dentro de Aragón •  Diferenciales •  Acumulados por 30, 60 y 90 días

31 de octubre de 2014 25

Page 26: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Arquitectura

31 de octubre de 2014 26

Page 27: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Arquitectura •  Nodo maestro •  PostgreSQL 9.3: sistema gestor de la base

de datos como maestro (+POSTGIS) •  Python 2.7 (pyscopg2, lxml,

beautifoulsoup4, json, urllib) •  Django: interfaz de administración •  Munin: monitorización de recursos •  Celery+Redis: sistema de colas de tareas

distribuidas •  Apache: servidor web

31 de octubre de 2014 27

Page 28: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Arquitectura •  Nodo esclavo •  PostgreSQL 9.3: sistema gestor de la base

de datos como esclavo de sólo lectura •  Python 2.7 (pyscopg2, json, mod-wsgi) •  Munin: monitorización de recursos •  Celery+Redis: sistema de colas de tareas

distribuidas •  Apache: servidor web para servir la API

con mod-python y mod-evasive

31 de octubre de 2014 28

Page 29: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Arquitectura

31 de octubre de 2014 29

Page 30: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Cómo funciona

31 de octubre de 2014 30

Page 31: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Cómo funciona •  Un script en Python por cada scraper – Cada uno se ocupa de una fuente – Código común separado (geolocalización, db,

idioma…) – En la base de datos se guarda información de

cada uno: •  Tipo: periódico o streaming •  Ruta: dónde se encuentra el script que lo ejecuta •  Cada cuánto se ejecuta •  Cuándo ha sido la última ejecución •  Resultado de la última ejecución

31 de octubre de 2014 31

Page 32: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Cómo funciona •  Proceso tipo demonio que consulta esta

información y lanza en segundo plano conforme está configurado – Controla el resultado – Registra todo lo que sucede en logs – Manda emails a los administradores si hay

errores

•  Desde el panel de administración se modifican estos parámetros

31 de octubre de 2014 32

Page 33: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Cómo funciona •  Los scrapers que requieren procesamiento

lo llevan integrado en el propio script (cambios en las fuentes)

•  Una vez que los datos están descargados – Automáticamente se copian al esclavo -> API – Pueden ser monitorizados y controlados desde

el panel de administración

•  El esclavo es el que soporta la carga de las consultas de los usuarios

31 de octubre de 2014 33

Page 34: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Monitorización

31 de octubre de 2014 34

Page 35: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Monitorización

31 de octubre de 2014 35

Page 36: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Monitorización

31 de octubre de 2014 36

Page 37: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Monitorización

31 de octubre de 2014 37

Page 38: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Qué ofrecemos al público

•  Una API (Application Programming Interface) que permite acceder a los datos recogidos y filtrados

•  Totalmente pública, sin necesidad de registro (aunque con algún límite)

•  Se pueden acceder a los datos antiguos hasta 12 meses (por el momento disponemos desde diciembre de 2013)

31 de octubre de 2014 38

Page 39: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Cómo usar nuestra API •  Peticiones HTTP como las que hace

cualquier navegador

•  El usuario sólo tiene que indicar qué datos desea obtener y cómo los quiere filtrar – Dirección (/trendings o /data) – Parámetros (?source=twitter)

•  Librerías en distintos lenguajes que hacen muy sencillo su uso

31 de octubre de 2014 39

Page 40: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Qué formato tienen los resultados

•  Actualmente en formato JSON

•  Los resultados aparecen paginados •  Ordenados cronológicamente

31 de octubre de 2014 40

Page 41: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Tendencias •  http://opendata.aragon.es/socialdata/trendings –  {"status": "OK", "results": [result_1, result_2,

result_3...]} –  Results: {"name": name, "url": url}

•  /socialdata/trendings?type=aragon •  /socialdata/trendings?type=spain •  /socialdata/trendings?type=30days •  /socialdata/trendings?type=60days •  /socialdata/trendings?type=90days •  /socialdata/trendings?type=diff

31 de octubre de 2014 41

Page 42: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Contenido •  http://opendata.aragon.es/socialdata/data?

parameters –  {"status": "NOK", "error_message": message} –  {"status": "OK", "on_this_page": on_this_page,

"results":[result_1, result_2, result_3...]} –  {"id": id,"description": description, "ends_on":

ends_on, "lat": latitude, "lng": longitude, "published_on": published_on, "title": title, "url": url, "author": author,"starts_on": starts_on, "source": source, "type": type, "thumbnail":thumbnail}

31 de octubre de 2014 42

Page 43: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Contenido •  id: entero identificativo del elemento. •  type: cadena que indica el tipo de contenido. •  source: cadena de texto que indica a qué fuente pertenece el resultado. •  title: cadena con el título del contenido en el caso de que lo tenga. •  description: contenido del elemento (texto del tweet, descripción del

evento, descripción del vídeo, etc.) •  url: dirección url directa al contenido. •  author: cadena de texto con el nombre del autor en caso de que lo haya. •  starts_on: para los eventos, si la tuvieran, fecha de comienzo. •  ends_on: para los eventos, si la tuvieran, fecha de final. •  published_on: fecha de publicación del contenido. •  lat: latitud del contenido en formato real. •  lng: longitud del contenido en formato real. •  thumbnail: dirección url del thumbnail asociado si lo hubiera.

31 de octubre de 2014 43

Page 44: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Contenido •  Dos tipos de paginación: –  Estándar (máx. 1000) –  since_id & max_id

•  Todas las fechas tienen el formato: 16/01/14 13:03

•  Se puede especificar que la API devuelva los datos en crudo con el parámetro raw_mode –  /socialdata/data?source=twitter&raw_mode=true –  Nuevo campo en los resultados llamado raw_data

31 de octubre de 2014 44

Page 45: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Cómo podemos filtrarla •  Por tipo de contenido •  Por fuente •  Por conversación •  Por geoposición •  Por período •  Por palabra clave

31 de octubre de 2014 45

Page 46: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Filtro por tipo de contenido •  /socialdata/data?type=content_type –  event (Facebook Events, Spain-info) –  text (Twitter, Facebook, Google+, Blogger, Blogia,

Wordpress) –  wiki (Wikipedia) –  video (Youtube, Vimeo) –  picture (Instagram, Flickr, Pinterest) –  venue (Foursquare) –  code (Github) –  media (Heraldo de Aragón, El Periódico de Aragón,

Diario del Alto Aragón, Diario de Teruel)

31 de octubre de 2014 46

Page 47: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Filtro por fuente •  /socialdata/data?source=source_name

–  spain_info –  facebook_events –  twitter –  youtube –  instagram –  facebook –  wikipedia –  blogger –  wordpress –  blogia –  vimeo –  flickr –  foursquare –  pinterest –  google_plus –  github –  heraldodearagon –  periodicodearagon –  diariodelaltoaragon –  diariodeteruel

31 de octubre de 2014 47

Page 48: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Filtro por conversación •  /socialdata/data?

conversation=conversation_type – geo: conversación sobre lo

que se habla dentro de Aragón

– rel: conversación de temas y usuarios relevantes para Aragón

31 de octubre de 2014 48

Page 49: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Filtro por geoposición •  Filtrado por centro y radio

–  /socialdata/data?center=coordinates&distance=distance_in_km

–  /socialdata/data?center=41.35678,-0.8148576&distance=5 •  Filtrado por cuadrado geográfico

–  /socialdata/data?bbox=min_lng,min_lat,man_lng,max_lat –  /socialdata/data?

bbox=-0.8148576,41.35678,-0.667584,41.78553 •  Filtrado por municipio y radio

–  /socialdata/data?locality=locality&distance=distance_in_km –  /socialdata/data?locality=Zaragoza&distance=5

•  Sólo datos geolocalizados: –  /socialdata/data?source=twitter&geolocated=true

31 de octubre de 2014 49

Page 50: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Otros filtros •  Por período: –  /socialdata/data?

start_date=start_date&end_date=end_date

•  Por palabra clave: –  /socialdata/data?query=query

•  Combinaciones!

31 de octubre de 2014 50

Page 51: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Ejemplo de uso

31 de octubre de 2014 51

https://github.com/albertoalcolea/charla-scraping

Page 52: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Ejemplo de resultados

31 de octubre de 2014 52

Page 53: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Qué puedo hacer con estos datos

31 de octubre de 2014 53

Page 54: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Cómo se puede utilizar en el ámbito de la música

•  Tendencias – Volumen de tráfico en redes sociales (twitter,

facebook, youtube…)

– Volumen de descargas y compras (iTunes, Amazon, Spotify, Google Play…)

– Valoraciones – Charts, top lists (Emisoras de radio, foros…) – Volumen de búsquedas (Google)

31 de octubre de 2014 54

Page 55: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Redes sociales específicas

•  Intentan dar a conocer nuevos temas, artistas, profesionales, conectar gente… – Last.fm: scrobblings, oyentes – Myspace – Tastebuds – Reverbnation – VK

•  Contrastar datos, tendencias, recomendaciones, gente importante…

31 de octubre de 2014 55

Page 56: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Algo un poco más avanzado

•  Análisis de redes complejas – Quién habla más y es más escuchado – Quién es más influyente – Qué grupos de gente relacionada con la

música se forman: ej. estilos

•  Hay webs que van un poco más allá (SoundCloud, Hulkshare, Zippyshare…) – Proveen las formas de onda de las canciones

•  Patrones más comunes

31 de octubre de 2014 56

Page 57: Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Enlaces •  http://opendata.aragon.es/ •  http://opendata.aragon.es/portal/social-

data •  http://opendata.aragon.es/portal/

desarrolladores/resumen

31 de octubre de 2014 57