SlideShare una empresa de Scribd logo
1 de 57
Descargar para leer sin conexión
Otra forma de escuchar a 
través de Internet 
Gonzalo Ruiz – gruiz@bifi.es 
31 de octubre de 2014
Í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
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
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
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
Jacathon 
31 de octubre de 2014 6
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
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
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
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
Ejemplo I 
http://docs.python-requests.org/en/latest/ 
31 de octubre de 2014 11
Ejemplo II 
http://www.crummy.com/software/BeautifulSoup/bs4/doc/ 
31 de octubre de 2014 12
Ejemplo III 
http://selenium-python.readthedocs.org/ 
31 de octubre de 2014 13
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
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
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
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
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
Temas de interés 
31 de octubre de 2014 19
Temas de interés 
31 de octubre de 2014 20
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
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
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
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
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
Arquitectura 
31 de octubre de 2014 26
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
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
Arquitectura 
31 de octubre de 2014 29
Cómo funciona 
31 de octubre de 2014 30
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
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
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
Monitorización 
31 de octubre de 2014 34
Monitorización 
31 de octubre de 2014 35
Monitorización 
31 de octubre de 2014 36
Monitorización 
31 de octubre de 2014 37
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
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
Qué formato tienen los resultados 
• Actualmente en formato JSON 
• Los resultados aparecen paginados 
• Ordenados cronológicamente 
31 de octubre de 2014 40
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
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
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
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
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
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
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
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
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
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
Ejemplo de uso 
https://github.com/albertoalcolea/charla-scraping 
31 de octubre de 2014 51
Ejemplo de resultados 
31 de octubre de 2014 52
Qué puedo hacer con estos datos 
31 de octubre de 2014 53
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
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
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
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

Más contenido relacionado

Similar a Otra forma de escuchar a través de Internet (BiMe), Gonzalo Ruiz

Introduccion al uso y gestion de recursos de información electronicos
Introduccion al uso y gestion de recursos de información electronicosIntroduccion al uso y gestion de recursos de información electronicos
Introduccion al uso y gestion de recursos de información electronicosAlvaro Cabezas Clavijo
 
Busqueda de recursos en internet
Busqueda de recursos en internetBusqueda de recursos en internet
Busqueda de recursos en internetandrey820922
 
Herramientas de internet
Herramientas de internetHerramientas de internet
Herramientas de internetJairoGaray
 
Taller de datos - Data Toolbox #OSR6 #14wkRebiun
Taller de datos - Data Toolbox #OSR6  #14wkRebiunTaller de datos - Data Toolbox #OSR6  #14wkRebiun
Taller de datos - Data Toolbox #OSR6 #14wkRebiunLuis Martinez-Uribe
 
Herramientas Social Media
Herramientas Social MediaHerramientas Social Media
Herramientas Social MediaMarcos Martinez
 
Big Data en el mundo del Machine Learning
Big Data en el mundo del Machine LearningBig Data en el mundo del Machine Learning
Big Data en el mundo del Machine Learningnnakasone
 
Datlas - BigData con Twitter - Qué hace la gente en Monterrey
Datlas - BigData con Twitter - Qué hace la gente en MonterreyDatlas - BigData con Twitter - Qué hace la gente en Monterrey
Datlas - BigData con Twitter - Qué hace la gente en MonterreyPedro Vallejo Castillo
 
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...Artium Vitoria
 
Actualización en recursos de información
Actualización en recursos de informaciónActualización en recursos de información
Actualización en recursos de informaciónCIRIA UDLAP
 
Situación de las iniciativas de Open Data internacionales (y algunas recomen...
Situación de las iniciativas de Open Data internacionales (y algunas recomen...Situación de las iniciativas de Open Data internacionales (y algunas recomen...
Situación de las iniciativas de Open Data internacionales (y algunas recomen...Oscar Corcho
 
El uso de la internet para la búsqueda de información
El uso de la internet para la búsqueda de informaciónEl uso de la internet para la búsqueda de información
El uso de la internet para la búsqueda de informaciónsalgonsan
 
computacion camilo arteaga 1 c
computacion camilo arteaga 1 ccomputacion camilo arteaga 1 c
computacion camilo arteaga 1 cCamilo Arteaga
 
Garzon Lucin Proyecto
Garzon Lucin ProyectoGarzon Lucin Proyecto
Garzon Lucin ProyectoFernando
 
Estadisticas e indicadores para la evaluación de colecciones y servicios de i...
Estadisticas e indicadores para la evaluación de colecciones y servicios de i...Estadisticas e indicadores para la evaluación de colecciones y servicios de i...
Estadisticas e indicadores para la evaluación de colecciones y servicios de i...Anubis Hosein
 
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...Internet Security Auditors
 

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

Introduccion al uso y gestion de recursos de información electronicos
Introduccion al uso y gestion de recursos de información electronicosIntroduccion al uso y gestion de recursos de información electronicos
Introduccion al uso y gestion de recursos de información electronicos
 
1 osint -v2.0
1 osint -v2.01 osint -v2.0
1 osint -v2.0
 
Busqueda de recursos en internet
Busqueda de recursos en internetBusqueda de recursos en internet
Busqueda de recursos en internet
 
Herramientas de internet
Herramientas de internetHerramientas de internet
Herramientas de internet
 
Taller de datos - Data Toolbox #OSR6 #14wkRebiun
Taller de datos - Data Toolbox #OSR6  #14wkRebiunTaller de datos - Data Toolbox #OSR6  #14wkRebiun
Taller de datos - Data Toolbox #OSR6 #14wkRebiun
 
Herramientas Social Media
Herramientas Social MediaHerramientas Social Media
Herramientas Social Media
 
Big Data en el mundo del Machine Learning
Big Data en el mundo del Machine LearningBig Data en el mundo del Machine Learning
Big Data en el mundo del Machine Learning
 
Datlas - BigData con Twitter - Qué hace la gente en Monterrey
Datlas - BigData con Twitter - Qué hace la gente en MonterreyDatlas - BigData con Twitter - Qué hace la gente en Monterrey
Datlas - BigData con Twitter - Qué hace la gente en Monterrey
 
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...
IX Encuentros de Centros de Documentación de Arte Contemporáneo en Artium - O...
 
Inside SWAD (el interior de SWAD)
Inside SWAD (el interior de SWAD)Inside SWAD (el interior de SWAD)
Inside SWAD (el interior de SWAD)
 
Actualización en recursos de información
Actualización en recursos de informaciónActualización en recursos de información
Actualización en recursos de información
 
Situación de las iniciativas de Open Data internacionales (y algunas recomen...
Situación de las iniciativas de Open Data internacionales (y algunas recomen...Situación de las iniciativas de Open Data internacionales (y algunas recomen...
Situación de las iniciativas de Open Data internacionales (y algunas recomen...
 
El uso de la internet para la búsqueda de información
El uso de la internet para la búsqueda de informaciónEl uso de la internet para la búsqueda de información
El uso de la internet para la búsqueda de información
 
computacion camilo arteaga 1 c
computacion camilo arteaga 1 ccomputacion camilo arteaga 1 c
computacion camilo arteaga 1 c
 
camilo arteaga 1 "C"
camilo arteaga 1 "C"camilo arteaga 1 "C"
camilo arteaga 1 "C"
 
Garzon Lucin Proyecto
Garzon Lucin ProyectoGarzon Lucin Proyecto
Garzon Lucin Proyecto
 
Estadisticas e indicadores para la evaluación de colecciones y servicios de i...
Estadisticas e indicadores para la evaluación de colecciones y servicios de i...Estadisticas e indicadores para la evaluación de colecciones y servicios de i...
Estadisticas e indicadores para la evaluación de colecciones y servicios de i...
 
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
VI Foro Evidencias Electrónicas en la Investigación Policial. Análisis forens...
 
Dn13 u3 a4_mtf
Dn13 u3 a4_mtfDn13 u3 a4_mtf
Dn13 u3 a4_mtf
 
Web Proyecto CODEPAM
Web Proyecto CODEPAMWeb Proyecto CODEPAM
Web Proyecto CODEPAM
 

Último

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfYanitza28
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfaxelv9257
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...solanocortezluisalfr
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfYanitza28
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...axelv9257
 
Retornamos a la escuela y nos organizamos para convivir en armonía
Retornamos a la escuela y nos organizamos para convivir en armoníaRetornamos a la escuela y nos organizamos para convivir en armonía
Retornamos a la escuela y nos organizamos para convivir en armoníaJuanPabloVictorianoS
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 

Último (17)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
Retornamos a la escuela y nos organizamos para convivir en armonía
Retornamos a la escuela y nos organizamos para convivir en armoníaRetornamos a la escuela y nos organizamos para convivir en armonía
Retornamos a la escuela y nos organizamos para convivir en armonía
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 

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

  • 1. Otra forma de escuchar a través de Internet Gonzalo Ruiz – gruiz@bifi.es 31 de octubre de 2014
  • 2. Í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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. Jacathon 31 de octubre de 2014 6
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. Temas de interés 31 de octubre de 2014 19
  • 20. Temas de interés 31 de octubre de 2014 20
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. Arquitectura 31 de octubre de 2014 26
  • 27. 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
  • 28. 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
  • 29. Arquitectura 31 de octubre de 2014 29
  • 30. Cómo funciona 31 de octubre de 2014 30
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. Monitorización 31 de octubre de 2014 34
  • 35. Monitorización 31 de octubre de 2014 35
  • 36. Monitorización 31 de octubre de 2014 36
  • 37. Monitorización 31 de octubre de 2014 37
  • 38. 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
  • 39. 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
  • 40. Qué formato tienen los resultados • Actualmente en formato JSON • Los resultados aparecen paginados • Ordenados cronológicamente 31 de octubre de 2014 40
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. 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
  • 50. 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
  • 51. Ejemplo de uso https://github.com/albertoalcolea/charla-scraping 31 de octubre de 2014 51
  • 52. Ejemplo de resultados 31 de octubre de 2014 52
  • 53. Qué puedo hacer con estos datos 31 de octubre de 2014 53
  • 54. 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
  • 55. 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
  • 56. 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
  • 57. 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