Programa o Extensión para extraer datos, links, etc de un código fuente

Iniciado por jheberg, 11 Enero 2018, 22:55 PM

0 Miembros y 1 Visitante están viendo este tema.

jheberg

Hola.

Suele sucederme que en algunas páginas web's hay una lista de link's o pequeños trozos de texto que me interesa copiarlos, por ejemplo.

www.este-es-un-link.(número al azar).jpg

Ese formato de link's se repite varias veces y como es lógico los números al azar es lo único que cambian, ir copiando de uno en uno es muy tedioso a más de lento, ya pues, me preguntaba si conocen algún programa que me permita copiar todo eso o extraerlo en un solo .txt

Puede ser un programa para windows así me descargo el html y lo extraigo o un complemento para firefox u opera para hacerlo directamente desde el código fuente.

Gracias.

engel lex

Hola! Puedes intentar con jdownloader, puede que resuelva tu problema, el simplemente intenta descargar lo que haga en el portapapeles, sólo tendrías que seleccionar link y copiar
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

NullifiedSociety

#2
Expresiones regulares es lo que buscas.

Si abres la consola del navegador y pegas este código, te saldrá una alerta con cosas parecidas a links encontradas en el código de la página cargada.

Código (javascript) [Seleccionar]

alert(document.querySelectorAll("html")[0].innerHTML.match(/(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?/g).join("\n"));


Saludos!
Planes de estudio + Libros correspondientes online y gratis.

Es sólo información. Caro es no proporcionarla. ¿O no ves ninguna relación entre el nivel de educación de una población, y su nivel de vida?

Es infantil esa postura de cerrar la información. Igual que la mentira, y nos gobiernan.

Ahora miedo, codicia e ignorancia son sinónimos. Es una visión triste, pero lógica, del mundo.

jheberg

Cita de: NullifiedSociety en 11 Enero 2018, 23:42 PM
Expresiones regulares es lo que buscas.

Me fue muy útil tu respuesta, hay alguna forma de poner condicionales a esa lista? para disminuir el número de links, porque también me muestra link's de los íconos y cosas así.

Engel Lex, si o si debo verlo desde el código Jdownloader no me sirve para eso, ya tú sabes temas de logueo y esas cosas.

jheberg

NullifiedSociety

Espera, solo saca los links con src no los que están dentro de un javascript

Por ejemplo:

button.push (new image ('case1000', ["https://unlink.com/img-case/imagenes/123124324.jpg"], 0));

La condicional que me gustaría poner en un recorre texto sería algo así:

https://unlink.com/img-case/imagenes/*.jpg


NullifiedSociety

#5
Hola aguén.

Emm no sé si entiendo lo que quieres decir.

Pero creo que sí. Quieres hacer lo mismo con los ficheros *.js, ¿es eso?

Para eso, tendrías que coger todos los script tags, y pasarlos por laFunctionQueHemosHechoAntes:

Código (javascript) [Seleccionar]

function laFunctionQueHemosHechoAntes(texto) {
 return texto.match(/(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?/g).join("\n");
};
var links = [];
var scriptTags = document.querySelectorAll("script").forEach(function(item) {
 $.ajax({
   url: item.src,
   success: function(jsSource) {
     links.push(laFunctionQueHemosHechoAntes(jsSource));
   }
 });
});


Necesitarás jQuery cargado, puedes obtenerlo de aquí por ejemplo:

https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js

Esperas a que se hagan todos los AJAX, y printas la variable links, ahí deberían estar todos.


Planes de estudio + Libros correspondientes online y gratis.

Es sólo información. Caro es no proporcionarla. ¿O no ves ninguna relación entre el nivel de educación de una población, y su nivel de vida?

Es infantil esa postura de cerrar la información. Igual que la mentira, y nos gobiernan.

Ahora miedo, codicia e ignorancia son sinónimos. Es una visión triste, pero lógica, del mundo.

jheberg

NullifiedSociety lo que hago es pulsar Ctrl+U y de ahí sale todo el código pero los links que me interesan están dentro de esa expresión push que me imagino es javascript no? nada de *.js todo es desde el navegador espero me entiendas, de todos modos, como cargo ese JQuery que dices?

Y solo mencionaba que también me gusta la idea de guardar el html y desde ahí recorrer el texto, pero repito nada de *.js

NullifiedSociety

#7
El jQuery lo puedes cargar copiando el código de la url que te he pasado y pegándolo en la consola del navegador directamente.


Okay, luego quierees coger sólo una parte del string coincidente.

Pues siguiendo con el script anterior, coges los links:

Código (javascript) [Seleccionar]

var regexParaLoAnterior = /.../g;
var regexParaLoPosterior = /.../g;
var stringsInteresantes = links.split(/\n/g).forEach(function(item) {
 return item.replace(regexParaLoAnterior, "").replace(regexParaLoPosterior, "");
});



Te dejo que saques tranquilamente una regex adecuada para "lo anterior" y "lo posterior".

Saludos!
Planes de estudio + Libros correspondientes online y gratis.

Es sólo información. Caro es no proporcionarla. ¿O no ves ninguna relación entre el nivel de educación de una población, y su nivel de vida?

Es infantil esa postura de cerrar la información. Igual que la mentira, y nos gobiernan.

Ahora miedo, codicia e ignorancia son sinónimos. Es una visión triste, pero lógica, del mundo.

jheberg

NullifiedSociety pos nada, ahora resulta que solo extrae menos de la mitad de todos los link's y acabo de darme cuenta que eso pasó desde la primera respuesta que me diste.

jheberg

Se me ha ocurrido una idea genial, copié el código en sublime text y seleccioné todas las líneas coincidentes y luego con shift + right (tecla de dirección derecha) fui seleccionando el resto, por suerte los números al azar tienen la misma longitud por tanto no tendré problemas, si fueran de diferentes longitudes la cosa se complica, pero no es mi caso así que no importa.

Chau nenes.

-

Edito.

Pos si, me topé con líneas de diferentes longitudes jajaja por suerte no fue muy difícil.

Usé una expresión regular y ya.
unlink.com/(.+).jpg

A quién pueda interesar...