Linux/Unix Shell Scripting - Extraer datos web

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Extraer datos web

Publicado por Ramon (8 intervenciones) el 23/10/2017 12:07:02
Buenos dias,
Deseo extraer de una pagina web la fecha y el valor del dia que hay en dicha pagina web.
Con el wget me bajo la pagina en cuestion, pero no logro extraer los datos correctamente.
Adjunto la pagina web descargada por si alguien quiere ayudarme.
La Fecha y el valor del dia estan al final de la pagina ( 2017-10-03 y 9,5675)

Muchas gracias por vuestra ayuda.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de abzerox
Val: 101
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Extraer datos web

Publicado por abzerox (27 intervenciones) el 24/10/2017 00:05:44
Hola Ramon, hize una pequeñas expresiones regular que quizas te sirvan:

1
2
# Fecha y Hora
egrep -e "[0-9]{4}-[0-9]{2}-[0-9]{2}\s(([01]?[4-9]|[012]?[0-3]):[0-5][0-9])" hola

1
2
3
4
# Fecha 
egrep -m1 -o "[0-9]{4}-[0-9]{2}-[0-9]{2}" hola | head -n1
# valor del día
egrep -m1 -o "([0-9]+),([0-9]+)" hola | head -n1

Nos comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 16
Ha aumentado 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Extraer datos web

Publicado por Ramon (8 intervenciones) el 25/10/2017 09:00:28
Buenos dias abzerox,

Muchas gracias por tu respuesta.
Tal como indicas, la fecha la leo bien, pero el valor no, me sale error "No se ha encontrado la orden" en la linea :

"egrep -m1 -o "([0-9]+),([0-9]+)" hola | head -n1"

He probado de canviar la coma por un punto pero tambien me da el error. Ten en cuenta que es un numero con 4 decimales.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de abzerox
Val: 101
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Extraer datos web

Publicado por abzerox (27 intervenciones) el 26/10/2017 03:57:38
Hola de nuevo, que raro que te arroje ese error yo lo probe y me va bien. Intenta con esta otra expresión:

1
grep -Eo "([0-9]+,[0-9]+)" hola

Lo que hace es en pocas palabras es buscar cualquier cadena que comience por al menos un número seguido por una coma y continué con al menos otro número.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 16
Ha aumentado 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Extraer datos web

Publicado por Ramon (8 intervenciones) el 27/10/2017 05:01:09
Buenos dias abzerox,

Algo falla, porque el valor tampoco puedo recuperarlo.
He adjuntado todo el script para que puedas utilizar los mismos datos que yo.
Estoy en un equipo con Linux Mint 17 y el script lo tengo en mi carpeta HOME/RAMON
En el script he dejado el codigo que antes me funcionaba y que bajé de la red, que devolvia el valor del cambio del dia y lo asignaba a una variable dentro del script, No sé porque pero un dia dejó de funcionar, a lo mejor se canvió el diseño de la web ???

Muchas gracias por tu ayuda.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de abzerox
Val: 101
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

Extraer datos web

Publicado por abzerox (27 intervenciones) el 28/10/2017 08:28:40
Hola ramon, viendo ahora el script realice algunas modificaciones y logre que funcionara utilizando las expresiones regulares que te he comentado anteriormente. Si te fijas en el script que comparto en lugar de usar una sola fecha utilizo un rango, es decir, por ejemplo
25-10-2017 a 28-10-2017 con lo cual puede que devuelva más de un valor, (esto si las fechas son distintas) por lo cual puedes optar por mostrar solo el primero mantenidodo el comando
1
head -n1
o quitar el pipeline y mostrar todos.

Nos comentas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 16
Ha aumentado 1 puesto en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

[Solucionado] Extraer datos web

Publicado por Ramon (8 intervenciones) el 28/10/2017 21:49:07
Buenos dias abzerox,

Fantastico. Funciona, ya vuelvo a tener el cambio de las divisas al dia.

Saludos y repito muchisimas gracias.

Ramon
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar