![]() |
Hora de modificación de página web
1 Archivos Adjunto(s)
Buenas tardes a todos,
me han encargado un pequeño proyecto en el cual debo rastrear y registrar la fecha y la hora de las modificaciones de una página web concreta, para hacerlo estoy usando Delphi 10.2 sobre windows 10/64 Revisando por las páginas del ClubDelphi, he encontrado esta referencia: https://clubdelphi.com/foros/showthr...cha+pagina+web Las soluciones son bastante antiguas, y entiendo que no están funcionando bien ya que me devuelve lo que aparece en la imagen para todas las páginas web con las que pruebo. Obviamente la página que chequeo existe, contiene datos y se actualiza de vez en cuando. Como dato, indicar que es una página hecha con WordPress. ¿Álguien que me eche una mano para resolver esto? Saludos y gracias |
Tienes que aprender del protocolo HTTP, no meramente copiar codigo sin entendimiento.
HTTP usa verbos (GET, POST, HEAD, ...), encabezados, estados, respuestas y solicitudes. Es un protocolo de texto. Que significa 301? https://es.wikipedia.org/wiki/HTTP_301 P.D: Tip. Mira con el navegador cualquier pagina usando click derecho, inspeccionar. En la pestaña de red, veras los request/response. Para ESTE hilo son: Código:
Resumen Y te puede decir mentiras. |
Cita:
Gracias por tu respuesta mamcx. Ya había consultado sobre el error 301, aunque no entiendo esa respuesta del servidor. La página está en el servidor (no hay error 410 o 404). Respecto a la petición de la información de red a la página (botón derecho, inspeccionar), tambien lo había mirado, pero la respuesta que me da en date es el momento en que se hace la petición, que no es la que yo necesito. Ciertamente, no tengo casi ninguna experiencia en el protocolo HTTP. Yo pensé que, al fin y al cabo, siendo un archivo colocado en un servidor en internet tiene una fecha y una hora de creación y/o modificación (es una página estática ¿no es un archivo de texto plano con una síntaxis específica que mi navegador me muestra?). Debo estar muy espeso y, despues de leer tu respuesta varias veces, no consigo entender lo que tratas de explicarme. :( ¿Podrías, por favor, intentar explicarmelo otra vez? Saludos y gracias |
Aunque sea una página estática, tú (el navegador) no descarga esa página, sino el resultado de procesamiento que hace el servidor web.
O sea, el fichero html/php no lo descargas. |
Cita:
Y ¿no hay ninguna manera de conocer cuando se creó/generó o modificó ese archivo? |
Depende de la configuración del servidor web, podrás descargarlo, por ejemplo con wget (es de linux, pero seguro que hay algo similar para windows).
Ejemplo de uso: wget https://www.google.com/index.php Te descargaría ese fichero y ahí podrías ver su fecha. (Es sólo un ejemplo, no creo que google permita descargarlo) |
Cita:
Pero si es una pagina de "codigo" como .php, .aspx, etc NO. Porque esas paginas lo que hacen es procesar algo, y retornar ese resultado, NO devolverse a "si mismas". Eso seria una falla de seguridad! -- Porque necesitas hacer esto? |
Gracias Casimiro
Sí, con wget (versión para windows) me descarga la página, pero vuelve a pasar lo mismo, el archivo tiene la fecha y hora de la descarga. Gracias mamcx Cita:
Saludos y gracias |
Hola a todos,
Lo que se me ocurre es una idea un poco de bombero, como suele decirse, pero, ¿qué tal descargar "la página" (la respuesta del servidor) y guardar un "hash" de la misma? Cada cierto tiempo, podrías obtener una nueva respuesta, "calcularías" su "hash" y podrías comprobarlo con el previamente guardado: si no son iguales, significa que "la página" (o al menos la respuesta del servidor) tiene algún cambio, pues produce "hashes" diferentes. Este hilo muestra información sobre cómo obtener el "hash" de una cadena. |
Cita:
Gracias Dec Fijate que yo estaba pensando en algo parecido, aunque mi idea iba más por el tema de "parsear" la parte del archivo que me interesa y compararlo con la última vez que se descargó. Tu idea es mucho más práctica, rápida y económica en cuanto a recursos. Saludos y gracias |
Cita:
¿Te refieres a la hora del fichero original? No creo que se pueda si no tienes credenciales de acceso vía FTP, por ejemplo. Otra opción es detectar si desde la ultima vez que lo consultaste ha habido cambios (creo que lo ha comentado [dec]). Puedes descargar el contenido y compararlo con el último descargado. Imagino que eso serviría si estás intentando consultar algún dato que publican en una web (tipos de cambio, precios,...) y no tienes acceso a través de ninguna API. |
Hola a todos,
Cita:
Ahora bien, el problema está en lo que se comenta en este mismo hilo: acaso no haya forma de conseguir algo así como la fecha "actual" de una página... y aquí es donde podría pensarse la solución que he propuesto. |
Yo creo que está confundido, porque si cambian algo en la página, entonces se puede "ver" en la respuesta. Y eso no es cambiar nada del fichero html/php en sí mismo. Tal vez con un ejemplo real podamos entenderlo.
Además, ¿cómo cambian la página? ¿la editan y la suben de nuevo? ¿seguro que es estática? Y, por cierto, wget (linux) sí descarga el fichero sin cambiarle la fecha, mantiene la original. Acabo de hacer una prueba: wget http://www.i...c.com/index.html Y el resultado: -rw-rw-r-- 1 user user 21K 2018-10-28 19:18 index.htm |
Cita:
Gracias Casimiro Evidentemente la respuesta es diferente cuando cambian algo, el problema es detectar ver cuando se produce ese cambio, que es lo que yo necesito. La idea de descargar y/o comprobar la fecha - hora era solamente eso, una idea. La verdad es que no se como la gestionan, más allá de que es una página de wordpress, ya he comentado que no me muevo en entornos web. Yo he usado la versión windows del wget y el resultado es un archivo con la fecha y la hora de la petición. Al final creo que me voy a decantar por la opción que me propone Dec, obtener el hash del archivo y compararlo con la siguiente descarga. Saludos y gracias |
Te pedía un ejemplo, o más información, porque creo que lo que pretendes no puedes hacerlo como piensas. Me explico.
La página web muestra una serie de nombres que lee de una base de datos, por ejemplo, imaginemos algo así (código inventado): Código:
Fichero: showpersonas.php Por eso no te sirve descargar el fichero y comprobar si es diferente, porque es el mismo, eso no se ha modificado. Puede que yo no lo haya entendido, pero me parece que es la situación. |
Cita:
Gracias Casimiro Me temo que debo darte la razón, debe ser un fichero generado de forma dinámica, he probado a generar el HASH del mismo fichero descargado dos veces de forma consecutiva y son diferentes. Voy a probar parseando la información del archivo que me devuelve la página web e intentar localizar las cadenas que busco. Saludos y gracias |
Cita:
Por ejemplo, esta misma `pàgina añade esto en la parte final: ![]() Con este pequeño cambio, el HASH siempre será diferente. |
Hola a todos,
En efecto, el asunto del "hash" puede resultar más peliagudo de lo que pudiera parecer al principio... porque cualquier cambio, como lo que menciona Neftalí, pero, también cambios que pueden incluso ser invisibles, meros cambios en la respuesta, en el HTML, producirá "hash" diferentes, y, realmente, lo que se podrá decir que se sabe es eso, que la respuesta es diferente... pero no, como se busca, si la página ha cambiado en lo que nos interesa. Tal vez "parsear" el HTML de la respuesta buscando el posible cambio exactamente en el sitio que nos interese... suene como una solución mejor, salvo el detalle de que esta solución acaso no valga para diferentes sitios web, por ejemplo, sino sólo para aquellos para cuya respuesta "estemos preparados" para "parsearla"... Sea como sea, mi idea del "hash", joroba, menos mal que dije que era de bombero... acaso no, pero, parece no servir para lo que se necesita aquí. |
Cita:
Gracias Neftali y Dec Efectivamente, los hash son diferentes; no he buscado la diferencia entre los archivos porque en realidad me da igual desde el momento en que no me sirve esa opción. La ventaja Dec, es que, en principio, es solamente una página la que hay que controlar, así que ya me he puesto con la idea del parser, aunque la he reducido a algo menos técnico:
Saludos y gracias |
La franja horaria es GMT +2. Ahora son las 22:03:57. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi