IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Détecter rafraichissement de page internet


Sujet :

Réseau/Web Python

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut Détecter rafraichissement de page internet
    Bonjour,

    Je souhaite vérifier toutes les x secondes si le contenu d'une page internet a changé.

    Cette page n'envoie pas d'information ETag ou Last-Modified.
    Donc je pensais faire un bout de programme qui va charger le contenu de la page à deux temps différents et comparer les deux contenus.

    Mais dans quelle sorte de variable charger le contenu pour faire cette comparaison ?

    J'ai testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sock1 = urlopen(url)
    sleep(30)
    sock2 = urlopen(url)
    print sock1==sock2
    resultat: toujours False

    J'ai testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    html1 = urlopen(url).read()
    sleep(20)
    html2 = urlopen(url).read()
    print html1==html2
    résultat: toujours False

    J'ai testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    html1 = urlopen(url).read()
    sleep(20)
    html2 = urlopen(url).read()
     
    f1 = open('fich1','w')
    f1.write(html1)
    f1.close(
    f1 = open('fich1','r')
    a = f1.read()
     
    f2 = open('fich2','w')
    f2.write(html1)
    f2.close()
    f2 = open('fich2','r')
    b = f2.read()
     
    print a==b
    résultat: toujours False

    Pourriez-vous m'orienter vers une idée pas trop compliquée svp.

  2. #2
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Ta deuxième façon est correct. Si ça dit False, c'est que quelque chose a changé.

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut Je me suis mal exprimé
    Le résultat est toujours False, même quand la page n' a pas changé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    url = 'http://www.google.fr'
    html1 = urlopen(url).read()
    sleep(1)
    html2 = urlopen(url).read()
    print html1==html2
    résultat False

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Points : 1 658
    Points
    1 658
    Par défaut Étonnant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    import urllib
    from time import sleep
     
    url = 'http://www.google.fr'
    html1 = urlopen(url).read()
    sleep(1)
    html2 = urlopen(url).read()
     
    print 'l1=',len(html1)
    print 'l2=',len(html2)
     
    print html1[:287]
    print html2[:287]
    print html1[:287]==html2[:287]
    print ''
    print html1[:288]
    print html2[:288]
    print html1[:288]==html2[:288]
    print ''
    print html1[:299]
    print html2[:299]
    print html1[:299]==html2[:299]
    len(html) vaut tantot 3127 tantot 3117

    la premiere egalite est toujours True
    la seconde egalite est parfois True, parfois False
    la troisieme egalite est toujours False
    car les caracteres au dela de 287 varient

    donc il est normal que html1==html2 soit toujours False

    Si c'est vrai pour la page d'accueil de google qui est simple, c'est encore plus vrai pour d'autres pages plus compliquees

  5. #5
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Essaye avec un autre site.

Discussions similaires

  1. Titre d'une page Internet
    Par Ramses__ dans le forum Web & réseau
    Réponses: 4
    Dernier message: 29/09/2006, 11h51
  2. [VB]connecter a une page internet
    Par onet dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 27/09/2005, 15h52
  3. [Batch] Tit prog pour ouvrir une page internet
    Par toniovitch dans le forum Windows
    Réponses: 1
    Dernier message: 17/09/2005, 16h20
  4. Ouvrir page internet en texte
    Par rabbi_jaccob dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/07/2005, 18h18
  5. Peut-on créer une page internet via JBuilder?
    Par Xavier dans le forum JBuilder
    Réponses: 2
    Dernier message: 17/02/2005, 21h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo