¿Cómo descargar todos los links de una pagina en un csv?
¿Necesitas todos los links de una página? Y obviamente hacerlo a mano uno a uno, no tiene sentido. Hoy te explico como hacerlo con JS y la consola de Chrome.

El otro día un cliente me envío un XML con todas las URLs de su página web y mucha más información que no necesitaba, así que el archivo era muy muy pesado para intentar procesarlo con Excel.
Al ser un XML pude abrirlo con Chrome y en ese momento fue cuando se me ocurrió que podía descargarme todos los enlaces que me interesaban desde la consola de Chrome y con un poco de JS.
//variable para guardar las URLs
var urls = [];
//guardamos todos los links "siempre que i sea mayor a 0 --> 0" en i
//document.links
for(var i = document.links.length; i --> 0;)
//guardamos cada link en el array
urls.push(document.links[i]);
function download(content, fileName, contentType) {
var a = document.createElement("a");
var file = new Blob([content], {type: contentType});
a.href = URL.createObjectURL(file);
a.download = fileName;
a.click();
}
download(urls, 'misenlaces.csv', 'text/csv');
¿Simple verdad? Si realmente quieres aprender y no solo copiar y pegar, aquí te facilito la documentación que he utilizado para poder hace este script.
- Cómo obtener todos los enlaces https://developer.mozilla.org/en-US/docs/Web/API/Document/links
- Cómo obtener elementos del DOM https://www.w3schools.com/js/js_htmldom_document.asp
- Cómo descargar un archivo en JS https://stackoverflow.com/questions/35547835/how-to-create-txt-file-in-javascript
- Qué es eso del Blob : https://developer.mozilla.org/en-US/docs/Web/API/Blob/Blob
- Tipos de archivos: https://developer.mozilla.org/es/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
¿Cómo podemos mejorar este script para guardas los enlaces de un web en un csv?
Pues se me ocurre muchas formas, por ejemplo si solo queremos los enlaces internos deberemos poner una condición algo así
hostname === location.hostname
Documentación:
-
Temas:
