logo

midulive


Transcribed podcasts: 605
Time transcribed: 13d 15h 9m 33s

This graph shows how many times the word ______ has been mentioned throughout the history of the program.

Os voy a enseñar un tema que a mí me vuela la cabeza,
que es el tema del scrapping, de robar contenido.
No sé si os ha pasado alguna vez que habéis visto, por ejemplo,
un periódico, eldiario.es, por poner uno.
Bueno, ahí está con Israel, vale, ordena el cierre total, no sé qué.
Yo qué sé, pues aquí, del periódico.
No está un poco robar, no, robar no.
Pero casi.
Hay algunos navegadores que le puedes dar a un botón
y te hace como una lectura del artículo
sin nada ni de publicidad, ni de diseño, ni nada.
Yo creo que Safari lo tiene.
Veis aquí este botoncito, este botoncito.
Claro, tú entras a esta página y tienes aquí publicidad en los lados,
se hace difícil de leer, pero le puedes dar aquí, pum,
y te aparece esta cosa maravillosa donde solo tienes el artículo,
tienes el titular, el subtítulo, la imagen.
O sea, es maravilloso.
O sea, lo lees súper fácil.
Si alguna vez tenéis algún problema de que no os dejan leer un artículo
o lo que sea, pues tenéis este modo lectura que os ayuda.
Pero no es tan interesante por esto, ¿no?
El modo lectura existe desde hace mucho tiempo.
Sino el tema es cuál es la magia que hay detrás para hacer esto.
¿Cómo consiguen hacer esto realmente?
¿Y cómo lo podrías hacer tú?
Yo lo sé porque he trabajado durante mucho tiempo haciendo estas mierdas.
Imaginaos el diario.es.
Pues hay un montón de bibliotecas que existen de Node.js
que lo que hacen es que extraen la información de un artículo.
Por ejemplo, aquí le puedes poner una URL al article extractor,
que ahora veremos este servicio, ¿vale?
Y le das a extract article y esto te lo convierte en un JSON
donde te da la URL, el título, la descripción, los enlaces que hay,
la imagen, ¿vale?
Podremos ver.
Vamos a ver si lo han dicho bien.
¿Ves?
Sí, lo han hecho bien.
El contenido del artículo, ¿vale?
Esto sería todo el contenido del artículo.
El autor del artículo, de dónde lo hemos sacado,
cuándo se ha publicado.
O sea, ha transformado lo que sería todo el HTML en un JSON.
Esto se hace de muchas formas y muy interesantes, la verdad.
Una sería leyendo los metadatos.
Por ejemplo, si vamos aquí al diario.es,
y por eso es tan importante el HTML muchas veces.
Si vamos aquí al HTML, verá, aquí.
¿Veis que hay un script, application, LD, JSON y todo esto?
Pues esto, lo que, si no me acuerdo mal,
esto creo que son los micro, microdatos.
Datos estructurados.
Datos estructurados, ¿vale?
Microdata.
Bueno, microdata sería como lo que es,
pero se llaman datos estructurados.
Ese sería el nombre, ¿no?
Los datos estructurados son objetos con un JSON un poquito especial,
donde tiene diferente información,
como por ejemplo el headline, que sería el titular.
Incluso hay algunos que tienen, pues, la imagen que es la importante,
el contenido, ¿ves?
Descripción.
Hay un montón.
Lo que funciona en estas bibliotecas es que parsean esta información.
Scrapping es leer un contenido y extraer el contenido de ahí.
Aquí, por ejemplo, es transformar el HTML y transformarlo en un JSON.
Lo que tenemos aquí es que leen esto,
pero si esto no existiese, que a veces pasa también,
lo que hacen también es, por ejemplo,
mira, Sánchez pide, Sánchez pide, ¿ves?
Puede, aquí no, pero ves que buscan.
¿Dónde está el H1?
Porque el H1 suele ser el titular.
Luego también pueden buscar data attributes especiales,
o pueden buscar la semántica.
Por ejemplo, obviamente, dentro del article,
article, pero no lo tiene,
pero dentro del article es donde normalmente está el contenido.
Los párrafos es normalmente donde está el contenido.
Y empieza a hacer como le ponen diferente peso a cada cosa
para saber dónde ha sacado la información.
Pues hay una biblioteca de Node.js,
esto os lo explico un poco para que os sepáis,
pero esto es una biblioteca de Node.js
que justamente se llama article extractor.
Está bastante chulo.
Es totalmente de código abierto,
aunque aquí pone que es un servicio, que no sé qué.
Es totalmente de código abierto.
Lo podéis utilizar aquí.
Y lo podéis utilizar, pero es que en un momento,
o sea, para que os hagáis una idea,
vamos a crear aquí un article extractor, article extractor,
boom install article extractor,
si no me equivoco, o sea, el nombre del paquete.
Ah, no, es este, ¿vale?
Pues lo vamos a instalar aquí.
Van install, ¿ok?
Instalamos.
Y es que en dos líneas de código vais a ver,
index.js, en dos líneas de código vais a poder hacer scrapping en un momento.
Esto por aquí y le vamos a decir const article await extract
y le vamos a pasar aquí la URL.
Por ejemplo, yo qué sé, imaginad que vamos al diario,
punto es este, la comisión europea suspende, no sé qué.
Vale, pues aquí, console.log article, ¿vale?
Van index.js.
Y ya está, ahí lo tenéis.
En un momento, o sea, ¿cuánto hemos tardado?
Hemos tardado seis segundos.
Hemos como transformado todo el HTML de la página en un JSON
que ahora, por lo que sea, podríamos utilizar para mostrar esto
de una forma mucho más bonita o para...
Incluso puede ser, no tiene por qué ser que lo mostremos,
pero puede ser que scrapeemos toda esta información
y hagamos un análisis de los datos, que lo mostremos de otra forma
para recuperar aunque sean los titulares o lo que sea, ¿no?
Es bastante interesante porque muchas veces creemos que esto es como muy difícil
y fijaos, tres líneas de código lo hacéis en un momento, ¿no?
Lo interesante es que aquí, pues una vez que ya tengáis este console.log article.content,
este HTML, pues lo podéis, le podríais poner para que sea más legible
o lo que sea.
¿Qué es lo que hace?
Esto es exactamente, exactamente lo que hace Apple, ¿eh?
El problema es cuando se necesita hacer muchas peticiones
y normalmente termina bloqueada la IP.
Bueno, pero eso, a ver, si te vas a...
A ver, vamos a hablar, ¿eh?
Vamos a hablar como verdaderos piratas.
Si de verdad necesitas hacer muchas peticiones,
normalmente lo que se hace es tener un rango de IPs e ir cambiando.
Y esto hay mil formas de hacerlo.
O sea, yo no os voy a explicar cómo se hace, pero se hace.
Se hace porque es obvio que si no te van a pillar.
Lo que vas haciendo es cambiando IPs, historias...
Y es imposible que te pillen.
Es muy difícil que te pillen.
Muy difícil.
Pero la IP me cambia en cada día, ¿no?
Pero eso es porque tú estás pensando en hacerlo desde tu ordena.
Desde tu ordena.
Pero esto normalmente no se hace desde tu ordena.
Se hace desde servidores.
Puedes utilizar proxys directamente,
que directamente pasen por el proxy
para que no detecten cuál es el servidor original.
Se puede hacer con máquinas, granjas de ordenadores.
O sea, se puede hacer de un montón de formas.
Pero bueno, esto es una forma de hacerlo, ¿eh?
Sabitar está de acuerdo con mi duda.
Totalmente.
No, pero está chulo.
A ver, no siempre tiene que ser porque quieras robar,
sino que simplemente es porque quieres extraer información
y porque ya sabéis cómo se puede hacer.
No, no tiene por qué ser algo negativo, hombre.
No seamos así.