[PYTHON] Como borrar cierta pagina de la cache

Iniciado por O-LLOS-O, 7 Junio 2010, 11:57 AM

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

O-LLOS-O

Hola a todos!!! miren tengo el siguiente problema:

He hecho un pequeño programa con interfaz grafica QT, que lo colgare algun dia de estos, si lo comento, es para controlar inversiones simples, actualmente solo monetarias, y ademas solo euros dolar.. asi que ya ves tu, pero para mi esta muy bien xdxd!!! i todo va a la perfeccion menos una cosa, yo quiero tener actualizados los valores de las monedas, y cada x tiempo consulto a ciertas paginas web para consultar en que valor estan en ese monento, si x es muy pequeño pocos segundos, no me varia el valor que obtengo, en canvio en la pagina web si que varia, por lo que deduxo que el programa no esta viendo la pagina real, si no la pagina que esta en la cache que hasta x segundos no se canvia,

No se si lo que he dicho es del todo cierto, es lo que creo que pasa, y solo me actualiza el valor cada minuto o dos, a mi me gustaria solo borrar de la chache la pagina que estoy utilizando, no toda, no se si es posible estoy buscando por internet, de momento no he encontrado nada, si lo hago lo posteo.

Muchas gracias!!!!

Novlucker

#1
Versión de Python y método con el cual estas haciendo el GET?

De cualquier manera, si mal no recuerdo la cache de Python va por separado, no es la misma que podrían utilizar otros programas de Windows

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

O-LLOS-O

version de python 2.6

y no se lo del get a que te refieres, yo lo que hago es simplemente:

Código (python) [Seleccionar]
HTLM = urllib2.urlopen("http://invertia.com/mercados/divisas/divisa.asp?idtel=DI000EUDOLAR")

y lo hago cada 5 segundos, analizo la pagina y todo lo demas para conseguir la informacion que quiero, pero, la pagina se actualiza cada segundo mas o menos, y yo esa actualizacion no la aprecio, no se si hay alguna forma de conseguir lo que quiero, estoy sobre linux y esas cosas que debe dar igual supongo.

A y otra cosa Novlucker no se si abrir otro post o no, para convertir un .py a exe he leido que esta el py2exe, pero me da bastantes problemas, no se que pasa que me da bastantes problemas es el programa que estoy haciendo no se si alguien me podria decir si le ha dado problemas o no(Si no abro otro post y ya esta como tu digas)

Mercy!!!

Novlucker

La cache borrala con urllib.urlcleanup()
py2exe puede traer algún problema, y lo peor de todo, exes enormes :-\

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Debci

Y si creas otro codigo, por ejemplo en C++ que libere la memoria de cache?

EDITO:No habia visto el msg de Novlucker, bueno no es mala idea lo mio (no, no soy esquizofrénico)

Saludos

O-LLOS-O

el problema sigue....  :-(, no entiendo pq mi teoria era  esa... asi que no se mira os cuelgo un simil de mi code:

Código (python) [Seleccionar]
# -*- coding: utf-8 -*-
import time
import re, urllib2, urllib


class Robot1():
    def __init__(self, parent = None, dolar = 0, euro = 0):
        self.parent = parent
        self.Dolar = dolar
        self.Euro = euro

    def IniciarBot(self, op = 1):
        self.Primero1()
   
    def Primero1(self):
        b = False
        try:
    urllib.urlcleanup()
            HTLM = urllib2.urlopen("http://www.eleconomista.es/cruce/EURUSD")
            HTLM2 = urllib2.urlopen("http://www.eleconomista.es/cruce/USDEUR")
        except urllib2.HTTPError, e: b = True
        except urllib2.URLError, e: b = True
        else:
    htlm = ""
    for ele in HTLM: htlm += ele
            euro = re.findall("class=\"[A-Za-z0-9_]+\">([0-9,]+)</span>", htlm)
            for ele in euro:
                a = ""
                for i in range(0, len(ele)):
                    if ele[i] != ',': a += ele[i]
                    else: a += '.'
                self.Euro = float(a)
    htlm2 = ""
    for ele in HTLM2: htlm2 += ele
            dolar = re.findall("class=\"[A-Za-z0-9_]+\">([0-9,]+)</span>", htlm2)
            for ele in dolar:
                a = ""
                for i in range(0, len(ele)):
                    if ele[i] != ',': a += ele[i]
                    else: a += '.'
                self.Dolar = float(a)
             
        if b: self.Mensage_Error

    def Mensage_Error(self):
      print "Error"



R = Robot1()
sortir =  False
t = time.time()
while (not sortir):
  t1 = time.time()
  if (t1-t > 3):
    R.IniciarBot()
    print R.Dolar, R.Euro
    t = t1



Basicamente utilizo esto pero en QT, en vez de crearme un timer con time(), utilizo la clase timer de Qt, pero bueno basicamente es esto y como podreis comprovar cuando la pagina canvia de valor no sale lo que ha de salir.... no se de la chache pq ya tiene incorpoado el cleanup.., no se si alguien tiene alguna idea de lo que puede ser.


Y para el otro tema de execurar exes, he encontrado alternativas, pero por aqui tendreis mas experiencia, qe me recomendais...


Saludos y gracias!!!


nacho87

Hola! yo he tenido algún problema similar con la cache y python y mi conclusión fue que el servidor almacenaba otra cache. En mi caso esa caché se basaba en la url que pedías así que lo soluciné añadiendo un parámetro aleatorio a la url, por ejemplo:
URL = http://www.eleconomista.es/cruce/EURUSD?asd=randsrting
de ésta manera cada vez que pidas la url al servidor será distinta. Puede que no se base en la url y sea en "user-agent", en ese caso puedes hacer lo mismo, con cada request generas un user agent distinto.
Saludoss!

O-LLOS-O

mmmm Por lo que veo no es ese el problema, la pagina en concreto canvia el valor, miro el codigo fuente, y no esta canviado en el codigo fuente, (y me lo descargo despues de que canvie...), asi que lo que hago lo hago bien, pero el htlm de la pagina no se actualiza, en canvio yo lo visualizo  :huh:

Saludos

Debci

Y no puedes usar otra pagina que no tenga esas caracteristicas?

Saludos

O-LLOS-O

Esa es la alternativa, estuve buscando y os o tres mas tenian ese sistema... asi que no se tampoco puedo dedicar-le ahora mucho tiempo que tengo examenes en la facultad, pero seguro que encuentro una, ya os comentare... xdxd

Si alguien tiene otra solucion que lo diga!!