![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Hora de modificación de página web
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 Última edición por Arturo.Molina fecha: 22-07-2020 a las 13:57:26. Razón: Agregar información |
#2
|
||||
|
||||
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 URL: http://www.clubdelphi.com/foros/showthread.php?p=538033#post538033 Estado: 200 OK Fuente: Red Dirección: 87.98.231.4:80 Solicitud GET /foros/showthread.php HTTP/1.1 Cookie: SERVERID111702......... Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Encoding: gzip, deflate Upgrade-Insecure-Requests: 1 Host: www.clubdelphi.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Safari/605.1.15 Referer: http://www.clubdelphi.com/foros/search.php?searchid=5741235 Accept-Language: es-es Connection: keep-alive Responder HTTP/1.1 200 OK Content-Type: text/html; charset=ISO-8859-1 Pragma: no-cache Set-Cookie: SERVERID111702=34066; path=/; max-age=900 Content-Encoding: gzip Expires: 0 Transfer-Encoding: Identity Cache-Control: private, post-check=0, pre-check=0, max-age=0 Date: Wed, 22 Jul 2020 13:16:47 GMT Vary: Accept-Encoding X-IPLB-Instance: 31965 X-Powered-By: PHP/5.4 Server: Apache Parámetros de la cadena de consulta p: 538033 Y te puede decir mentiras.
__________________
El malabarista. |
#3
|
|||
|
|||
![]() 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 |
#4
|
||||
|
||||
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.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
Cita:
Y ¿no hay ninguna manera de conocer cuando se creó/generó o modificó ese archivo? |
#6
|
||||
|
||||
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)
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
||||
|
||||
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?
__________________
El malabarista. |
#8
|
|||
|
|||
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 |
#9
|
||||
|
||||
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. |
#10
|
|||
|
|||
![]() 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 |
#11
|
||||
|
||||
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.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#12
|
||||
|
||||
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. |
#13
|
||||
|
||||
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
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#14
|
|||
|
|||
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 Última edición por Arturo.Molina fecha: 23-07-2020 a las 12:26:28. |
#15
|
||||
|
||||
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 query.open.select * from personas while not query.eof show query.persona.nombre end 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.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#16
|
|||
|
|||
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 |
#17
|
||||
|
||||
Cita:
Por ejemplo, esta misma `pàgina añade esto en la parte final: ![]() Con este pequeño cambio, el HASH siempre será diferente.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#18
|
||||
|
||||
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í. |
#19
|
|||
|
|||
![]() 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 |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como le resto una hora a la fecha y hora en sql server | uper | MS SQL Server | 3 | 12-10-2015 20:41:49 |
Hora en entero a hora en decimal. | TiammatMX | OOP | 5 | 15-01-2013 18:19:40 |
diferencia de campos hora y almacenarlo en hora | gonza_619 | Varios | 7 | 06-12-2010 01:51:03 |
seleccionar hora en datetimepicker desde hora especifica | gonza_619 | Varios | 4 | 21-11-2010 20:42:19 |
Convertir de hora GMT a hora local | marceloalegre | Varios | 4 | 16-05-2007 23:35:58 |
![]() |
|