Bajando datos de Twitter - Cátedra de Transparencia y...

47
Mariluz Congosto @congosto Bajando datos de Twitter Usando T-hoarder_kit

Transcript of Bajando datos de Twitter - Cátedra de Transparencia y...

Page 1: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Mariluz Congosto @congosto

Bajando datos de Twitter

Usando T-hoarder_kit

Page 2: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

1. Captura de datos

2. Taller de uso de la API de Twitter

Índice

Page 3: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Objetivos del taller

Comprender el proceso de extracción

de datos y su problemática

Disponer de un kit para aprender y

experimentar en la extracción de datos

20/06/2019 Mariluz Congosto @congosto 3

Page 4: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

1. CAPTURA DE DATOS

20/06/2019 Mariluz Congosto @congosto 4

Page 5: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos

Web scraping API • Se puede obtener

todo lo publicado en a Web

• No hay rate limit • Estructura de

datos: • HTML, XHTML

validated • JSON, JSONP,

XML, Microdata

• Se puede obtener lo que ofrezca la API, a veces más, otras veces menos que en la Web

• Hay rate limit • Menos volumen

de información • Estructura de

datos: • JSON

20/06/2019 Mariluz Congosto @congosto 5

Page 6: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: Autentificación

Autentificación

Protocolo

Formatos

API REST

API streaming

Limitaciones

Consola

API

20/06/2019 Mariluz Congosto @congosto 6

Page 7: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: Autentificación

Access token

20/06/2019 Mariluz Congosto @congosto 7

Page 8: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: Autentificación

Cliente (app)

Servidor

Dueño del recurso

20/06/2019 Mariluz Congosto @congosto 8

Page 9: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: Protocolos

REST Streaming

Cliente (app) Twitter

(servidor) Cliente (app)

Get

Datos

Post

Post

Datos

Datos

Datos

…………

Twitter

(servidor)

Respuesta

20/06/2019 Mariluz Congosto @congosto 9

Page 10: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: Formatos

¡¡Menos mal que

existen conversores

a csv!!

http://www.w3schools.com/json/

20/06/2019 Mariluz Congosto @congosto 10

Page 12: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: Formatos

20/06/2019 Mariluz Congosto @congosto 12

Page 13: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: APIs

Permite descargar tuits

en tiempo real

180

Search API

REST API

Streaming API

Permite realizar

búsquedas

Permite el acceso al

core de los datos de

Twitter

15-

900

50

15 min.

15 min.

1 seg.

20/06/2019 Mariluz Congosto @congosto 13

Page 14: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: API REST

• Search API

• Favoritos

• Statuses

• Users

• Followers

• Friends

• Friendships

• Lists

• Trends

• Help

Familias Métodos

20/06/2019 Mariluz Congosto @congosto 14

Page 15: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: API Streaming

POST statuses / filter

GET statuses / sample

GET statuses / firehose

Rate limit

20/06/2019 Mariluz Congosto @congosto 15

Page 17: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: limitaciones

1. Cantidad de información

• REST: número máximo de consultas cada

15 minutos

• Streaming: máximo de 50 tuits por segundo

2. Historial

• REST: una semana de antigüedad

• Streaming: ninguna antigüedad

20/06/2019 Mariluz Congosto @congosto 17

Page 18: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: limitaciones

La frecuencia importa: el efecto meseta

API streaming

http://t-hoarder.com/7DElDebateDecisivo/

#7DEldebateDecisivo

API REST

20/06/2019 Mariluz Congosto @congosto 18

Page 19: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Captura de datos: limitaciones

El tiempo importa Ahora

Streaming API

REST API (search)

REST API (3500 últimos tuits)

Genip

Histórico 1 semana

20/06/2019 Mariluz Congosto @congosto 19

Page 20: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

2. TALLER DE USO DE LA API

DE TWITTER

20/06/2019 Mariluz Congosto @congosto 20

Page 21: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Taller de uso de la API de Twitter

Entorno de trabajo

Autentificar

Obtener información de

usuarios

Obtener tuits

Obtener relaciones

20/06/2019 Mariluz Congosto @congosto 21

Page 22: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

ENTORNO DE TRABAJO

20/06/2019 Mariluz Congosto @congosto 22

Page 23: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Entorno de trabajo

Contraseña: cambiala

20/06/2019 Mariluz Congosto @congosto 23

Page 24: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Entorno de trabajo

https://github.com/congosto/GetOldTweets-python

20/06/2019

WebScraping

Mariluz Congosto @congosto 24

Page 25: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Entorno de trabajo

https://github.com/congosto/t-hoarder_kit

20/06/2019

API

Mariluz Congosto @congosto 25

Page 26: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Entorno de trabajo

Webscraping

20/06/2019 Mariluz Congosto @congosto 26

Page 27: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Entorno de trabajo

API

20/06/2019 Mariluz Congosto @congosto 27

Page 28: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Descarga de datos

Autentificar

Obtener información de

usuarios

Obtener tuits

Obtener relaciones

20/06/2019 Mariluz Congosto @congosto 28

Page 29: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Descarga de datos

20/06/2019 Mariluz Congosto @congosto 29

Page 30: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Datos de contexto

20/06/2019

App para acceder -> taller_datos.key

Usuario: cada uno el suyo

Experimento: directorio donde se dejarán los datos

Se introduce la principio y todos las peticiones utilizarán ese contexto

Mariluz Congosto @congosto 30

Page 31: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Descarga de datos

Copiar Pegar copiar

20/06/2019 Mariluz Congosto @congosto 31

Page 32: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

OBTENER INFORMACIÓN DE

USUARIOS

20/06/2019 Mariluz Congosto @congosto 32

Page 33: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Información de usuarios

Perfil

Perfiles de sus seguidores

Perfiles de sus seguidos

Conexiones

Tweets publicados

Role

Perfiles de sus contactos

20/06/2019 Mariluz Congosto @congosto 33

Page 34: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Información de usuarios

Operación Método Limitaciones

--profiles GET users/show 3.600 perfiles

/hora

--followers GET followers/list 12.000

perfiles/hora

--following GET friends/list 12.000

perfiles/hora

--relations GET followers/list

GET friends/list

12.000

perfiles/hora

--tweets GET

statuses/user_timeline

720.000

tweets/hora

20/06/2019 Mariluz Congosto @congosto 34

Page 35: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Información de usuarios

• Abrir el editor pluma

• Escribir la lista de usuarios,

uno por línea

• Guardarlo en el directorio del

experimento (en este caso

prueba con el nombre de

usuarios.txt)

20/06/2019 Mariluz Congosto @congosto 35

Page 36: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Información de usuarios

20/06/2019 Mariluz Congosto @congosto 36

Page 37: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

OBTENER TUITS

20/06/2019 Mariluz Congosto @congosto 37

Page 39: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Obtener tuits

20/06/2019 Mariluz Congosto @congosto 39

Page 40: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Obtener tuits

20/06/2019 Mariluz Congosto @congosto 40

Page 41: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

OBTENER RELACIONES

20/06/2019 Mariluz Congosto @congosto 41

Page 42: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Obtener relaciones

Con teoría de grafos, que modela:

• Individuos como nodos

• Relaciones como aristas

Un grafo es una abstracción que

representa una red, donde:

• Un conjunto de nodos o vértices está

conectado mediante aristas o enlaces

20/06/2019 Mariluz Congosto @congosto 42

Page 43: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Obtener relaciones

Relaciones declaradas

A B A sigue a B

A es seguido por B

A y B se siguen

mutuamente

Relaciones dinámicas

A retuitea a B

A es retuiteado

por B

A y B se retuitean

mutuamente

A B

A B

A B

A B

A B

20/06/2019 Mariluz Congosto @congosto 43

Page 44: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Obtener relaciones

Operación Método Limitación

Relaciones

declaradas

GET

followers/ids

GET friends/ids

60 peticiones hora

Máximo 300.000

ids /hora

(5.000 Ids por

petición)

Con –fast 60

conexiones de

usuarios /hora

Relaciones dinámicas No necesita la

API-

-

20/06/2019 Mariluz Congosto @congosto 44

Page 45: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Obtener relaciones

20/06/2019 Mariluz Congosto @congosto 45

Page 46: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Obtener relaciones

20/06/2019 Mariluz Congosto @congosto 46

Page 47: Bajando datos de Twitter - Cátedra de Transparencia y ...ctranspa.webs.upv.es/wp-content/uploads/2019/07/t1_datostw.pdf · Taller de uso de la API de Twitter Índice . Objetivos

Resumen

Comprender el proceso de extracción de datos y su

problemática

Asumir que obtener los datos (gratis), tiene limitaciones de

volumen y temporales

Disponer de un kit para experimentar y profundizar en

estos conceptos

Posibilidad de mejorar o ampliar los scripts de t-hoarder_kit

20/06/2019 Mariluz Congosto @congosto 47