1. Universidad Católica del Norte
Curso de Introducción a Data Science
Clase 3: Recolectar datos y web scraping
Profesores:
Basada en la presentación: J. Zico Kolter Carnegie Mellon University
Dr. Juan Bekios Calfa
Mg. Felipe Peña Graf
Ing. Agustin Olivares Soto
2. 2
Contenido
● Introducción
● El proceso de recopilación de datos
● Formatos y manejo de datos comunes
● Expresiones regulares y análisis
3. 3
Contenido
● Introducción
● El proceso de recopilación de datos
● Formatos y manejo de datos comunes
● Expresiones regulares y análisis
4. Introducción: CRIPS-DM
Las técnicas para Data Science o Data Analytics,
surgieron en la década de los 90.
Una primera aproximación fue KDD (Knowledge
Discovery in Databases), en un intento por
normalizar el proceso de descubrimiento de
conocimiento.
Al final de los 90, las principales metodologías
eran:
● CRISP-DM (Cross Industry Standard Process
for Data Mining)
● SEMMA (Sample, Explore, Model, and Assess)
CRISP-DM, y sus extensiones, son utilizadas hoy
en día por diferentes empresas (IBM) para el
desarrollo de sus productos y modelos.
5. CRIPS-DM
Fase I: Business Understanding
Definición de necesidades del cliente
(Comprensión del negocio)
Esta fase inicial se enfoca en la comprensión de los
objetivos de proyecto. Después se convierte este
conocimiento de los datos en la definición de un
problema de minería de datos y en un plan
preliminar diseñado para alcanzar los objetivos.
6. RoadMaps
● Herramienta de planificación
● Objetivos generales y específicos
● Cumplimiento a corto, mediano y
largo plazo
● Hitos o milestones
● Muestran nuestro estado actual y
lo que vamos a hacer para llegar a
un estado futuro
7. CRIPS-DM
Fase II: Data Understanding
Estudio y comprensión de los datos
La fase de comprensión de los datos comienza con la
colección de datos inicial y continúa con las actividades
que permiten familiarizarse con los datos, identificar los
problemas de calidad, descubrir conocimiento
preliminar sobre los datos, y/o descubrir subconjuntos
interesantes para formar hipótesis en cuanto a la
información oculta.
8. 8
Contenido
● Introducción
● El proceso de recopilación de datos
● Formatos y manejo de datos comunes
● Expresiones regulares y análisis
9. El primer paso en la ciencia de datos
El primer paso en la ciencia de datos… es
obtener datos….
Este paso generalmente se hace de
cuatro maneras:
1. Descargar manualmente un archivo
o conjunto de datos.
2. Desde una base de datos
3. Utilizar una API (generalmente
basada en protocolos Web)
4. Directamente desde una página Web.
9
10. El primer paso en la ciencia de datos
El primer paso en la ciencia de datos… es
obtener datos….
Este paso generalmente se hace de cuatro
maneras:
1. Descargar manualmente un archivo o
conjunto de datos.
2. Desde una base de datos
3. Utilizar una API (generalmente
basada en protocolos Web)
4. Directamente desde una página Web.
10
12. HTTP queries
La gran mayoría de las consultas de datos automatizadas que ejecutaremos
usarán solicitudes HTTP (se ha convertido en el protocolo dominante para
mucho más que solo consultar páginas web)
La implementación del protocolo HTTP tiene muchos aspectos técnicos que
no vamos a ver en el curso, sin embargo es bueno conocer algunos aspectos y
su uso.
Para ello, utilizaremos librerías que ya han sido implementadas y probadas.
12
14. HTTP queries
14
Estado de la
llamada
Tipo de
contenido
Cuerpo
Ejemplo de salida a llamada a google.com
15. Conceptos básicos de solicitudes HTTP
Has visto URL como estas:
https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=9&cad=rja&uact=8…
Las declaraciones extrañas después de la URL son parámetros, estos agregan funcionalidades
adicionales a la solicitud.
https://fakestoreapi.com/products?limit=5
HTTP GET es el método más común, pero también hay métodos PUT, POST, DELETE que
cambian algún estado en el servidor.
15
16. RESTful API
Si va más allá de solo consultar páginas web a API web, lo más probable es
que encuentre API REST (Representational State Transfer).
REST es más una arquitectura de diseño, algunos puntos clave:
● Utiliza una interfaz y métodos HTTP estándar (GET, PUT, POST, DELETE).
● Stateless: El servidor no recuerda lo que se estaba haciendo.
Regla general: si envía la clave de su cuenta junto con cada llamada a la API,
probablemente esté utilizando una API REST.
16
18. RESTful API
Si va más allá de solo consultar páginas web a API web, lo más probable es
que encuentre API REST (Representational State Transfer).
REST es más una arquitectura de diseño, algunos puntos clave:
● Utiliza una interfaz y métodos HTTP estándar (GET, PUT, POST, DELETE).
● Stateless: El servidor no recuerda lo que se estaba haciendo.
Regla general: si envía la clave de su cuenta junto con cada llamada a la API,
probablemente esté utilizando una API REST.
18
19. Como consultar con API RESTful
Consulta una API REST es similar a las solicitudes HTTP estándar, pero casi
siempre necesitará incluir parámetros:
Ejemplo de REST: el servidor no recuerda sus últimas consultas, por ejemplo,
siempre debe incluir su token de acceso si lo usa de esta manera.
19
20. Autentificación
La autenticación básica ha sido tradicionalmente el enfoque más común para
el control de acceso a las páginas web.
La mayoría de las API han reemplazado esto con alguna forma de Oauth o
autorización basada en Token.
20
21. 21
Contenido
● Introducción
● El proceso de recopilación de datos
● Formatos y manejo de datos comunes
● Expresiones regulares y análisis
22. Formato de los datos
Los tres formatos más comunes (a juzgar por mi experiencia completamente
subjetiva):
1. Archivos CSV (valores separados por comas)
2. Archivos y strings JSON (notación de objetos Javascript)
3. Archivos HTML/XML (lenguaje de marcado de hipertexto/lenguaje de
marcado extensible) y strings.
22
23. Formato de los datos
Los tres formatos más comunes (a juzgar por mi experiencia completamente
subjetiva):
Archivos CSV (valores separados por comas)
23
24. Formato de los datos
Archivos CSV (valores separados por comas)
Si los valores en sí mismos contienen comas, puede encerrarlos entre comillas.
“3,35”, “4,245”, “Hola”, 35, 27
Hay que tener cuidado que los archivos CSV pueden o no contener cabeceras.
Por ejemplo,
24
25. Formato de los datos
CSV reader: Es un nodo Knime que permite leer archivos CSV
25
Identificar donde se
encuentran los archivos
Ruta y nombre del archivo
¿Tiene cabecera el
archivo?
Sintaxis del archivo
26. Formato de los datos
Los tres formatos más comunes (a juzgar por mi experiencia completamente
subjetiva):
Archivos y strings JSON (notación de objetos Javascript)
26
27. Formato de los datos
Archivos y strings JSON (JavaScript Object Notation)
JSON se originó como una forma de encapsular objetos Javascript
Se pueden representar varios tipos de datos diferentes
● Número: 1.0 (siempre se supone que es punto flotante)
● String: "cadena"
● Booleano: verdadero o falso
● Lista (matriz): [elemento1, elemento2, elemento3,...]
● Diccionario (Objeto en Javascript): {"clave":valor}
Las listas y los diccionarios se pueden incrustar entre sí:
[{"clave":[valor1, [valor2, valor3]]}] 27
28. Formato de los datos
Archivos y strings JSON (JavaScript Object Notation)
28
29. Formato de los datos
Archivos y strings JSON (JavaScript Object Notation)
29
30. Formato de los datos
JSON reader: Es un nodo Knime que permite leer archivos JSON
30
Identificar donde se
encuentran los archivos
Ruta y nombre del archivo
Sintaxis del archivo
31. Formato de los datos
Los tres formatos más comunes (a juzgar por mi experiencia completamente
subjetiva):
Archivos HTML/XML (lenguaje de marcado de hipertexto/lenguaje de
marcado extensible) y strings.
32
32. Formato de los datos
XML reader: Es un nodo Knime que permite leer archivos XML
33
Identificar donde se
encuentran los archivos
Ruta y nombre del archivo
Sintaxis del archivo
33. 35
Contenido
● Introducción
● El proceso de recopilación de datos
● Formatos y manejo de datos comunes
● Expresiones regulares y análisis
34. Matching de múltiples caracteres potenciales
El verdadero poder de las expresiones regulares radica en la capacidad de
hacer coincidir múltiples secuencias posibles de caracteres.
Caracteres especiales en expresiones regulares: .^$*+?{}[]|() (si desea hacer
coincidir exactamente estos caracteres, debe escaparlos: $)
Coincidencia de conjuntos de caracteres:
● Haga coincidir el carácter 'a': a
● Haga coincidir el carácter 'a', 'b' o 'c': [abc]
● Cualquier carácter excepto 'a', 'b' o 'c': [^abc]
● Haga coincidir cualquier dígito: d (= [0-9])
● Coincide con cualquier alfanumérico: w (= [a-zA-z0-9_])
● Coincidencia de espacios en blanco: s (= [ tnrfv])
● Coincide con cualquier carácter: . (incluida la nueva línea con re.DOTALL)
37
35. Matching de caracteres repetidos
Puede coincidir con una o más instancias de un personaje (o conjunto de caracteres)
Algunos modificadores comunes:
● Coincidencia del carácter 'a' exactamente unavez: a
● Coincidencia del carácter 'a' cero o una vez: a?
● Hacer coincidir el carácter 'a' cero o más veces: a*
● Coincide con el carácter 'a' una o más veces: a+
● Coincide con el carácter 'a' exactamente n veces: a{n}
Puede combinarlos con la coincidencia de varios caracteres: •
Coincidencia de todas las instancias de "<algo> ciencia" donde <algo> es una cadena
alfanumérica con al menos un carácter
w+s+ciencia
38
36. Ejemplos
Encontrar solo las palabras que comienzan en mayúscula. Utilice el siguiente texto:
Misión
La Universidad Católica del Norte, inspirada en los principios del Humanismo
Cristiano, crea y difunde conocimiento a través de la docencia, la investigación y la
vinculación con el medio, contribuyendo a la formación integral de la persona, la
preservación de la herencia cultural y al desarrollo sostenible de la sociedad desde el
Norte de Chile.
Use el siguiente simulador: https://www.site24x7.com/es/tools/analizador-de-
regex.html
39
38. Ejemplos
Encontrar las palabras con “p” ó “P”. Utilice el siguiente texto:
Misión
La Universidad Católica del Norte, inspirada en los principios del Humanismo
Cristiano, crea y difunde conocimiento a través de la docencia, la
investigación y la vinculación con el medio, contribuyendo a la formación
integral de la persona, la preservación de la herencia cultural y al desarrollo
sostenible de la sociedad desde el Norte de Chile.
Use el siguiente simulador: https://www.site24x7.com/es/tools/analizador-
de-regex.html
41
40. Agrupamiento
A menudo queremos obtener más información que solo si encontramos una
coincidencia o no (por ejemplo, es posible que queramos saber qué texto
coincidió)
Agrupación: Encierra partes de la expresión regular entre comillas para
"recordar" estas partes de la coincidencia
(w+)s([Ss]ciencia)
43
41. Expresiones regulares
Una vez que haya cargado los datos (o si necesita crear un analizador para
cargar algún otro formato de datos), a menudo necesitará buscar elementos
específicos dentro de los datos.
44
43. Ordenamiento y matching codicioso
Hay un orden de operaciones en las expresiones regulares.
abc|def coincide con las cadenas "abc" o "def", no "ab(c o d)ef"
Puede evitar esto usando paréntesis, por ejemplo, a (bc | de) f
Esto también crea un grupo, usa a(?:bc|de)f si no quieres capturarlo
De forma predeterminada, las expresiones regulares intentan capturar la
mayor cantidad de texto posible (coincidencia codiciosa)
<(.*)> aplicado a <a>texto</a> coincidirá con la expresión completa
Si desea capturar la menor cantidad de texto posible, use <(.*?)> esto solo
coincidirá con el término <a>
47
44. Características adicionales
Omitimos muchos elementos aquí para que sea breve: líneas de inicio/fin,
anticipación, grupos con nombre, etc.
No se preocupe si no puede recordar toda esta notación
Use los documentos:
https://docs.python.org/3/howto/regex.html
https://docs.python.org/3/library/re.html
Pruebe expresiones de prueba para ver qué sucede
48