![]() |
|
| Tasker Para hablar de todo lo relacionado con la aplicación tasker |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
||||
|
||||
|
Obtener precio combustibles de tu ciudad desde la página de Minetur
Hola,
estoy intentando usar el plugin Restask de Tasker para obtener el precio del combustible de mi ciudad actualizado cada día, desde la web del Ministerio: La web del servicio Rest donde se actualizan a diario de todas las gasolineras de España es esta: https://sedeaplicaciones.minetur.gob...nesTerrestres Desde el navegador se accede a un xlm con todos los datos. La idea es aprovechando el plugin Restask hacer un "Post" a esa url y filtrar los datos que necesite para, en mi caso almacenarlos en una bbdd local. El problema es que no se como funciona Restask y no hay ninguna INFO ni tutoriales que me sirva de guía. Alguien que sepa como va el tema de Rest y que haya tocado Restask me puede ayudar? Muchas gracias. Saludos Enviado desde mi JY-S3 mediante Tapatalk Última edición por dj_janker Día 14/04/16 a las 13:22:38 |
|
|
|
#2
|
||||
|
||||
|
Cita:
http://www.htcmania.com/showthread.php?t=614108 Esa lección del tutorial ya incluye varios ejemplos de tareas que realizan labores similares. Luego, en este foro ya hemos comentado y explicado algunas otras tareas que resuelven problemas de ese tipo, como... http://www.htcmania.com/showthread.php?t=567903 |
| Gracias de parte de: | ||
|
#3
|
|
|
Cita:
*README*Como te dice Caravantes teniendo los datos que te interesan en un archivo de texto (un XML en este caso) es relativamente sencillo cargarlo en una variable y procesarlo, aunque con las dimensiones que tiene este no esperes que sea una tarea fácil. |
| Gracias de parte de: | ||
|
#4
|
||||
|
||||
|
Gracias @Caravantes y @WillyWeb,
no me había planteado que se pudiera hacer directamente por variables desde Tasker, por lo que con un poco de paciencia y bastante curro puede salir... Me pongo con ello y os planteo las dudas que vayan saliendo. Saludos Enviado desde mi JY-S3 mediante Tapatalk Última edición por dj_janker Día 01/02/16 a las 13:10:58 |
|
#5
|
|
Por si te vale de ayuda aquí tienes la estructura de ese XML...
https://sedeaplicaciones.minetur.gob...EESSTerrestres Pero después de mirarlo un poco más despacio creo que lo de cargarlo en una variable y procesarlo es una locura. El archivo pesa casi 10MB y está todo en una sola línea de texto. ![]() Curioseando en la web del MINETUR he visto que esa información se ofrece en varios formatos... https://sede.minetur.gob.es/es-ES/da...os-carburantes Tienes una web que te permite hacer búsquedas. Y la versión para móvil es muy manejable... http://geoportalgasolineras.es/geopo...eess/index.jsp Una vez realizada la búsqueda puedes guardar la URL del resultado en tus favoritos y consultarla en un plis-plas. ![]() Y tienes otra página desde la que puedes descargar un ZIP (contiene un CSV) para cada tipo de combustible que te interese... http://geoportalgasolineras.es/desca...tipoBusqueda=0 Ese CSV es más manejable que el XML original y tiene la información justa (lat/lon, estación, precio). Veo mucho más factible procesar ese CSV y, teniendo en cuenta tu posición GPS, buscar las gasolineras que se encuentren en un radio X.
Última edición por WillyWeb Día 01/02/16 a las 13:39:54 |
|
#6
|
||||
|
||||
|
Efectivamente, por otro lado había encontrado esto: https://github.com/kbsali/gasolineras-espana
para poder descargar en .json el precio diario por cada tipo de combustible. Cada entrada del .json te da la {latitud, longitud, precio, nombre} He estado probando con el archivo del gasóleo A que es el que me interesa, pero lo consigo. En este caso tengo que buscar alguna manera de conseguir filtrar las entradas de dicho archivo correspondientes a mi ciudad. Para ello tengo que generar o buscar una tarea que en función de las coordenadas me de el nombre de la ciudad y luego filtrarlas para poder quedarme con unas variables que contengan nombre y precio solamente. Edito: he encontrado esta tarea de Caravantes http://www.htcmania.com/showthread.php?t=703855, espero que me sirva para lo que busco. Última edición por dj_janker Día 01/02/16 a las 15:35:39 |
|
#7
|
|
|
Cita:
Y si lees el código de "open_gasolineras.py" podrás ver que descarga los mismos ZIP que tienes aquí... http://geoportalgasolineras.es/desca...tipoBusqueda=0 Antes de seguir tengo unas preguntas... ¿Qué motivo tienes para querer procesar los datos con Tasker? ¿No te vale con el resultado que te proporciona la versión web para móvil? ¿Te valdría con una consulta automática a esa web basada en tu posición? |
|
#8
|
||||
|
||||
|
Cita:
Respecto a tu pregunta, lo que pretendo es enviar los precios del gasóleo de las diferentes gasolineras de mi ciudad a mi sistema domótico, para que me lo lea cada mañana antes de salir, para saber donde repostar. Un frikada más... Intenté hacerlo con alguna de las aplicaciones Android que te dan esos datos, pero no he encontrado manera de procesar sus resultados para poder utilizarlos con Tasker y enviarlos al sistema domótico. Por eso me planteé irme a la web del ministerio que es de donde se surten de datos todas estas apps. |
| Gracias de parte de: | ||
|
#9
|
|
|
Cita:
Y no te olvides de que si quieres usar el script tienes que tener instalado el interprete de Python. ![]() Sigo pensando que la versión web para móvil te puede hacer un buen servicio... Usando HTTPGet descargas la página de resultados de una URL de consulta compuesta a medida de tus necesidades. Digamos que así... Código:
http://geoportalgasolineras.es/geoportalmovil/eess/search.do?tipoCarburante=4&codPostal=28000 Procesar eso con Tasker es sencillo si usas expresiones regulares. |
| Gracias de parte de: | ||
|
#10
|
||||
|
||||
|
No se si sigue en pie está idea pero ne gusta, mañana le pego un vistazo
Sent from my LG-D802 using Tapatalk |
| Gracias de parte de: | ||
|
#11
|
||||
|
||||
|
Perfecto!
A ver si tu puedes avanzar algo. Yo lo tengo aparcado por falta de tiempo.... ![]() Enviado desde mi JY-S3 mediante Tapatalk |
| Gracias de parte de: | ||
|
#12
|
||||
|
||||
|
Cita:
tras entender un poco mejor como funcionan los Http Get y el trabajo con variables, en mi consulta: http://www.htcmania.com/showthread.php?t=1167799 He decidido retomar esta y el caso es que he avanzado bastante, aunque me falta pulirla. Por ahora, siguiendo tus directrices, he conseguido aislar los datos de la primera gasolinera del listado que se filtra de mi ciudad, de la web comentada en tu post anterior. Para ello he generado la siguiente tarea: Código:
Precio Combustible3 (90)
A1: HTTP Get [ Servidor:Puerto:http://geoportalgasolineras.es Ruta:/geoportalmovil/eess/search.do?tipoCarburante=4&rotulo=&venta=T&provincia=41&localidad=&calle=&SEVILLAnumero=&codPostal= Atributos: Cookies: User Agent: Cuenta atrás:10 Tipo Mime: Archivo de salida: Confiar en cualquier Certificado:Apagado ]
A2: Separar variable [ Nombre:%HTTPD Separador:href="./map.do?tipoCarburante= Eliminar base:Apagado ]
A3: Sección de Variable [ Nombre:%HTTPD2 Desde:28 Longitud:10 Encajar:Encendido Almacenar Resultado en:%rotulo ]
A4: Separar variable [ Nombre:%rotulo Separador:< Eliminar base:Apagado ]
A5: Separar variable [ Nombre:%HTTPD2 Separador:</td> Eliminar base:Apagado ]
A6: Sección de Variable [ Nombre:%HTTPD22 Desde:13 Longitud:58 Encajar:Encendido Almacenar Resultado en:%direccion ]
A7: Sección de Variable [ Nombre:%HTTPD23 Desde:19 Longitud:58 Encajar:Encendido Almacenar Resultado en:%precio ]
A8: Separar variable [ Nombre:%precio Separador:< Eliminar base:Apagado ]
A9: Flash [ Texto:Rotulo:%rotulo1 Direccion:%direccion Precio: %precio1 € Largo:Apagado ]
El caso es que me gustaría que este proceso se repitiera para las 15 primeras opciones. Para ello sé que hay que hacer un loop con For - End For, para items que vayan desde 2:16, y que el For deberá incluirse entre los pasos A2 y A3, pero tras intentarlo todo, no lo consigo..... ![]() Una ayudita, por favor?? |
|
#13
|
|
El primer problema para conseguir lo que quieres es el sistema que has usado para "sacar" los datos de la página. Mejor que "separar variable" yo usaría expresiones regulares que, entre otras ventajas, te dan los resultados en un array que luego puedes recorrer fácilmente con un bucle.
No debería ser muy complicado
|
|
#14
|
|
Venga vale, he hecho una prueba rápida y me ha salido esto...
Código:
Geoportal (14) A1: Establecer variable [ Nombre:%url A:http://www.geoportalgasolineras.es/geoportalmovil/eess/search.do?tipoCarburante=4&economicas=on&venta=P&provincia=41&localidad=UTRERA ] A2: HTTP Get [ Servidor:Puerto:%url ] A3: Buscar y Reemplazar Contenido de Variable [ Variable:%HTTPD Buscar:<tr>(.|\s)*?</tr> Almacenar Coincidencias En:%fila ] A4: For [ Variable:%num Ítems:2:%fila(#) ] A5: Buscar y Reemplazar Contenido de Variable [ Variable:%fila(%num) Buscar:(?<=">).*?(?=</a>) Una sola coincidencia:Encendido Almacenar Coincidencias En:%rot ] A6: Buscar y Reemplazar Contenido de Variable [ Variable:%fila(%num) Buscar:(?<=<td>).*?(?=</td>) Una sola coincidencia:Encendido Almacenar Coincidencias En:%dir ] A7: Buscar y Reemplazar Contenido de Variable [ Variable:%fila(%num) Buscar:(?<=<span>).*?(?=</span>) Una sola coincidencia:Encendido Almacenar Coincidencias En:%pre ] A8: Flash [ Texto:%rot1 / %dir1 / %pre1 ] A9: End For El bucle A4-A9 recorre ese array desde el elemento 2 (saltando la cabecera) hasta el final. La RegEx de A5 saca el rótulo. La RegEx de A6 saca la dirección. La RegEx de A7 saca el precio. Con muy pocos cambios se le podría dar otro enfoque y que las RegEx generasen directamente tres arrays con esos mismos tres datos. Con eso evitarías el bucle y la RegEx de A3 ... ya tienes tarea ![]() *Mucho ojo con meter espacios en blanco en las RegEx, que te pueden dejar Tasker frito. |
| Gracias de parte de: | ||
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 20:41:34 (GMT +1)
HTCMania: líderes desde el 2007











