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

Linux Discussion :

wget récupère un code source d'une version antérieure à celle en ligne


Sujet :

Linux

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 24
    Points
    24
    Par défaut wget récupère un code source d'une version antérieure à celle en ligne
    Bonjour,

    Pour un script j'ai besoin de télécharger une page régulièrement afin d'agir en fonction de ses changements.
    Mais ma ligne wget me pose un problème, lors de la 1ere boucle tout se passe bien mais aprés wget récupère toujours le même code source meme si le code de la page évolué entre temps .

    -j'ai pensé que ca pouvait être un problème de cache donc j'ai essayé avec les options : --no-cache, --cache=off, -nc mais sans plus de succès .

    -le fichier dans lequel j'enregistre la page web est supprimer avant de relancer le wget



    voila la fonction en question:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    function recuptwitter
    {
        wget --output-document=twitter.txt "http://twitter.com/xxxxx"
        grep "published timestamp" twitter.txt >> lien0.txt
        #suppression de tout ce qui precede le" du lien ligne par ligne
        while read LIEN
            do
            echo ${LIEN#*time:\'} >> lien1.txt
            done < lien0.txt
        #suppression de tout ce qui suit le" du lien ligne par ligne    
        while read LIEN
            do    
            echo ${LIEN%%\'\}\">*} >> lien2.txt
            done < lien1.txt
        #comparaison avec la date de la derniere verification
        NBTWEET=0
        LASTCHK=$(cat lastchecktwitter.txt)
        while read LIEN
            do
            if [ "$LASTCHK" != "$LIEN" ]
            then NBTWEET=$(($NBTWEET+1))
            else break 1
            fi
            done < lien2.txt
     
        grep -m 1 "0" lien2.txt > lastchecktwitter.txt
        #recuperation des liens
        if [ $NBTWEET -gt 0 ]
        then
            grep "tweet-url web" twitter.txt > lien3.txt
            while read LIEN
                do
                echo ${LIEN#*href=\"} >> lien4.txt
                done < lien3.txt
     
            while read LIEN
                do    
                echo ${LIEN%%\" class*} >> lien5.txt
                done < lien4.txt
            grep -m $NBTWEET "http://" lien5.txt > flien.txt
        fi
     
        rm lien*.txt
        rm twitter.txt
    }
    Si vous avez une idée ca m'arrangerez bien, tout le script marche sauf ce wget qui doit déclencher tout le reste ...

    Merci d'avance

  2. #2
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Normalement wget récupère les données distantes s'il est sans argument.

    Ce qui peut être intéressant : L'option -N (--timestamp) qui ne télécharge le fichier que s'il a été modifié depuis le dernier téléchargement. Cependant, l'option -N n'est pas compatible avec -O (--output-document) ; il faut donc copier le fichier téléchargé vers twitter.txt.
    Son nom est facile à déterminer selon l'URL : FICHIER=${URL##*/}.
    En gros ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    URL="http://twitter.com/xxxxx"
    wget -N $URL && cp ${URL##*/} twitter.txt
    ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Merci de ta réponse

    Je n'y avait pas pensé a utilisé le -N dans ce cas là.

    Aprés essai, ca ne change rien, mais pourtant il retélécharge la page a chaque fois alors qu'il devrait me marquer :
    Fichier du serveur pas plus récent que le fichier local «/home/killersky4/xxxx» -- non récupéré.
    j'ai donc droit au :
    "Le fichier distant est plus récent, récupération."
    Mais quand je le l'ouvre j'ai toujours une code source plus ancien

    Du coup ca fausse mon raisonnement et je comprends encore moins d'où peux venir le problème :s

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Mon probleme ne vient pas du wget, je l'ai remplacé par un curl, mais le problème persiste :s

  5. #5
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Citation Envoyé par killersky4 Voir le message
    ... je comprends encore moins d'où peux venir le problème :s
    Du site ?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Surement car au bout d'un moment j'ai une version plus récente ...

    Mais je suis pas le seul à utiliser un bot pour twitter.com, je doute qu'ils ai mis des restrictions
    Et meme avec un wget "masqué" ( wget --referer="http://www.google.com" --user-agent="Mozilla/5.0 (X11; ect... ) j'ai toujours le même résultat .

    c'est fou comme une opération aussi simple peu me poser autant de problème ...

    j'essayerai avec le xml de la page en rentrant

  7. #7
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Tu n'aurais pas un proxy qui aurait la vieille page en cache ?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Non je n'ai rien de tout ca.
    Je n'aime pas faire ca, mais j'ai abandonné sans comprendre et je suis passé par le xml du flux rss.
    Avec lui aucun problème... (un peu moins pratique mais à grand coups d'expressions régulières j'arrive a avoir ce que je veux)


    Merci de vos éclairages

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. besoin du code source pour une version debug ?
    Par tendu1 dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 08/10/2009, 18h25
  2. [FLASH MX2004 PRO] Recuperer le code source d'une page
    Par adilou1981 dans le forum Flash
    Réponses: 9
    Dernier message: 26/07/2005, 18h11
  3. [Reseau] Récupérer le code source d'une URL
    Par gogolpexe dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 29/06/2005, 14h06
  4. Récupérer le code source d'une page web
    Par glRaZ dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/12/2004, 09h16
  5. [Juridique] Comment réutiliser le code source d'une classe ?
    Par mathieu dans le forum Général Java
    Réponses: 8
    Dernier message: 17/05/2004, 13h40

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