SlideShare una empresa de Scribd logo
1 de 44
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
Contenido
● Introducción
● El proceso de recopilación de datos
● Formatos y manejo de datos comunes
● Expresiones regulares y análisis
3
Contenido
● Introducción
● El proceso de recopilación de datos
● Formatos y manejo de datos comunes
● Expresiones regulares y análisis
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.
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.
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
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
Contenido
● Introducción
● El proceso de recopilación de datos
● Formatos y manejo de datos comunes
● Expresiones regulares y análisis
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
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
Modelo Cliente/Servidor
11
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
HTTP queries
13
Ruta o
dirección web
Parámetros
adicionales de
encabezado y cuerpo
HTTP queries
14
Estado de la
llamada
Tipo de
contenido
Cuerpo
Ejemplo de salida a llamada a google.com
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
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
RESTful API
https://mycodetips.com/basic-information/do-you-know-what-is-rest-api-2650.html
https://shareurcodes.com/
17
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
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
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
Contenido
● Introducción
● El proceso de recopilación de datos
● Formatos y manejo de datos comunes
● Expresiones regulares y análisis
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
Formato de los datos
Los tres formatos más comunes (a juzgar por mi experiencia completamente
subjetiva):
Archivos CSV (valores separados por comas)
23
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
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
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
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
Formato de los datos
Archivos y strings JSON (JavaScript Object Notation)
28
Formato de los datos
Archivos y strings JSON (JavaScript Object Notation)
29
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
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
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
35
Contenido
● Introducción
● El proceso de recopilación de datos
● Formatos y manejo de datos comunes
● Expresiones regulares y análisis
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
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
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
Ejemplos
40
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
Ejemplos
42
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
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
Expresiones regulares
45
1
2
Expresión regular:
(.*)-(.*)
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
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

Más contenido relacionado

Similar a Recolectar datos y scraping web

ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0
ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0
ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0SolidQ
 
Como desarrollar-un-sistema-en-php-paso-a-paso
Como desarrollar-un-sistema-en-php-paso-a-pasoComo desarrollar-un-sistema-en-php-paso-a-paso
Como desarrollar-un-sistema-en-php-paso-a-pasocampucss
 
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorAcceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorJomicast
 
Curso básico de lenguaje R aplicado a las Ciencias Sociales
Curso básico de lenguaje R aplicado a las Ciencias SocialesCurso básico de lenguaje R aplicado a las Ciencias Sociales
Curso básico de lenguaje R aplicado a las Ciencias SocialesNicolas Robinson-Garcia
 
Web Content Mining - Datos estructurados
Web Content Mining - Datos estructuradosWeb Content Mining - Datos estructurados
Web Content Mining - Datos estructuradosJuan Azcurra
 
Jornadas gvSIG 2009
Jornadas gvSIG 2009Jornadas gvSIG 2009
Jornadas gvSIG 2009sabueso81
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con RESTAlex Puig
 
Pon tus aplicaciones a 100 con redis
Pon tus aplicaciones a 100 con redisPon tus aplicaciones a 100 con redis
Pon tus aplicaciones a 100 con redisDaniel Mazzini
 
Estructuras básicas para C++
Estructuras básicas para C++Estructuras básicas para C++
Estructuras básicas para C++Bryangio2002
 
POE Unidad 3: Aplicaciones visuales orientadas a eventos con acceso a base de...
POE Unidad 3: Aplicaciones visuales orientadas a eventos con acceso a base de...POE Unidad 3: Aplicaciones visuales orientadas a eventos con acceso a base de...
POE Unidad 3: Aplicaciones visuales orientadas a eventos con acceso a base de...Franklin Parrales Bravo
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosandreadelacruz002
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosMaztherprozh
 

Similar a Recolectar datos y scraping web (20)

Diseño web moderno desde cero
Diseño web moderno desde ceroDiseño web moderno desde cero
Diseño web moderno desde cero
 
ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0
ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0
ETL: Nuestras experiencias con Excel en procesos ETL. SolidQ 1 – Excel 0
 
OLE BD
OLE BDOLE BD
OLE BD
 
Cubos ppt
Cubos pptCubos ppt
Cubos ppt
 
Como desarrollar-un-sistema-en-php-paso-a-paso
Como desarrollar-un-sistema-en-php-paso-a-pasoComo desarrollar-un-sistema-en-php-paso-a-paso
Como desarrollar-un-sistema-en-php-paso-a-paso
 
Acceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidorAcceso a datos en aplicaciones web del entorno servidor
Acceso a datos en aplicaciones web del entorno servidor
 
Curso básico de lenguaje R aplicado a las Ciencias Sociales
Curso básico de lenguaje R aplicado a las Ciencias SocialesCurso básico de lenguaje R aplicado a las Ciencias Sociales
Curso básico de lenguaje R aplicado a las Ciencias Sociales
 
Web Content Mining - Datos estructurados
Web Content Mining - Datos estructuradosWeb Content Mining - Datos estructurados
Web Content Mining - Datos estructurados
 
Jornadas gvSIG 2009
Jornadas gvSIG 2009Jornadas gvSIG 2009
Jornadas gvSIG 2009
 
Frameworks de templates y xml
Frameworks de templates y xmlFrameworks de templates y xml
Frameworks de templates y xml
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con REST
 
Django
DjangoDjango
Django
 
Pon tus aplicaciones a 100 con redis
Pon tus aplicaciones a 100 con redisPon tus aplicaciones a 100 con redis
Pon tus aplicaciones a 100 con redis
 
Estructuras básicas para C++
Estructuras básicas para C++Estructuras básicas para C++
Estructuras básicas para C++
 
POE Unidad 3: Aplicaciones visuales orientadas a eventos con acceso a base de...
POE Unidad 3: Aplicaciones visuales orientadas a eventos con acceso a base de...POE Unidad 3: Aplicaciones visuales orientadas a eventos con acceso a base de...
POE Unidad 3: Aplicaciones visuales orientadas a eventos con acceso a base de...
 
Texto Paralelo.pptx
Texto Paralelo.pptxTexto Paralelo.pptx
Texto Paralelo.pptx
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_servicios
 
Centro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_serviciosCentro de estudios_tecnologicos_industrial_y_de_servicios
Centro de estudios_tecnologicos_industrial_y_de_servicios
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
C++ Meetup Madrid
C++ Meetup MadridC++ Meetup Madrid
C++ Meetup Madrid
 

Último

ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolicalf1231
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrialGibranDiaz7
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfKEVINYOICIAQUINOSORI
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 

Último (20)

ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
desarrollodeproyectoss inge. industrial
desarrollodeproyectoss  inge. industrialdesarrollodeproyectoss  inge. industrial
desarrollodeproyectoss inge. industrial
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
Elaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdfElaboración de la estructura del ADN y ARN en papel.pdf
Elaboración de la estructura del ADN y ARN en papel.pdf
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 

Recolectar datos y scraping web

  • 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
  • 13. HTTP queries 13 Ruta o dirección web Parámetros adicionales de encabezado y cuerpo
  • 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