Ando de vacaciones y me aburría un poco así que he hecho un web scrapper de la web. Está alojado en Gitlab: https://gitlab.com/theme118/tema-scrapping. Tiene licencia GPLv3(aquí dejo la definición de la licencia GPLv3. La GPL es posiblemente la licencia más potente e importante del mundo… La tecnología con la que está hecha esta web la usa ^^): https://es.wikipedia.org/wiki/GNU_General_Public_License y usa Typescript(Ref: https://es.wikipedia.org/wiki/TypeScript) que es Javascript levemente tipado. No me enrollo en explicar que es cada cosa así que por eso os dejo los enlaces y si os interesa le echáis un vistazo.
Grosso modo, se ejecuta la API web y permite recuperar la información de la url especificada o de todos los posts existentes(unos 15.000 y pico), recupera uno a uno siguiendo un modelo de datos y lo guarda en una base de datos mongoDB. Los datos están representados usando JSON(Javascript Object Notation). En este ejemplo he extraído los datos de este post: https://temapolis.com/2024/02/19/canal-de-panama/. He sacado las imágenes, el vídeo incrustado, el texto, el título, el autor del post, las visitas y los likes y dislikes. Eso por la parte de contenido, del HTML se pueden sacar más cosas 🙂
Scrappingception. Escrapea el post hablando de scrapping.
¿el uso de todo eso? bueno, me apetecía recuperar datos.
Por supuesto tiene limitaciones. No puedo recuperar contenido no accesible desde el HTML, es decir, yo puedo recuperar y tratar contenido accesible por el navegador pero no la parte del servidor. Tampoco puedo recuperar contenido dentro de los iframe. Si incrustáis un post de X no puedo recuperar su contenido, como mínimo no directamente desde Temapolis. Esto es para evitar un tipo de ataque llamado XSS(Cross-stie scripting) y me parece correcto que tenga limites.
Si a alguno os gusta la programación web(esto son tecnologías web) este es un proyectillo con el que podéis aprender. Por cierto, ejemplo de tecnologías web: Discord, Element, Slack, la mitad de Steam(sí, Steam incrusta un Chromium viejuno), creo que el Spotiflis y absolutamente todas las PWA.
PS: Perdón, tenía la accesibilidad del código en privado y no se podía acceder a verlo. Ya deberíais poder.