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

JavaScript Discussion :

Ouverture de lien avec variable


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de guenfood
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2004
    Messages : 254
    Points : 126
    Points
    126
    Par défaut Ouverture de lien avec variable
    Bonjour,

    Je cherche à créer une page qui m'ouvrirait (et fermerait) toutes les pages d'un site dont l'url dispose d'une donnée variable.

    Je m'explique.
    Le site dispose de pages composées comme suit : http://www.urldusite/RepertoireVariable/RepertoireFixe

    En ouvrant ces pages, cela télécharge un fichier.

    Seul le RepertoireVariable, qui correspond à un nombre compris entre 9782000000000 et 9799999999999, change.

    J'ai tenté en local sur mon pc avec une ligne de commande telle que ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo off
    For /L %%i IN (9782000000000,1,9799999999999) do chrome.exe http://www.urldusite/%%i/RepertoireFixe/
    exit
    Mais la variable est tronquée une fois lancée car trop longue, et les onglets du navigateurs sont ouverts mais pas fermés.

    Je souhaite donc passer par un script php en local (via wampserver) pour exécuter ceci en espérant que cela me permettra de pouvoir générer une variable qui fonctionne correctement.

    Je précise que j'ai déjà tenté avec des aspirateurs de site et Wget pour arriver à mes fins, mais je n'ai pas réussi à trouver la façon de prendre en compte la partie variable de l'url.

    Si quelqu'un a une idée, je suis preneur, car je sèche.
    Merci par avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    PHP n'ouvre pas de pages.
    Comme je suppose que ton but est de recuperer le fichier, il faudrait voir si

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Copy('http://www.urldusite/9782000000000/RepertoireFixe', 'monfichier.extension');
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    readfile(http://www.urldusite/9782000000000/RepertoireFixe');
    donnent quelque chose

  3. #3
    Membre habitué Avatar de guenfood
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2004
    Messages : 254
    Points : 126
    Points
    126
    Par défaut
    Cela ne fonctionne pas avec readfile.

    Mais je viens de tester avec du javascript avec le code suivant et ça fonctionne.
    Mais il reste toujours la partie variable à intégrer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <script type="text/javascript">
        var win = window.open("http://www.urldulien/RepertoireVariable/RepertoireFixe/","mywindow");
        var interval;
        function closePopup()
        {
            win.close();
            clearInterval(interval);
        }
        interval=setInterval(closePopup,2000);
    </script>

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Je suppose que tu n'es pas propriétaire du site en question ?

  5. #5
    Membre habitué Avatar de guenfood
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2004
    Messages : 254
    Points : 126
    Points
    126
    Par défaut
    Non, je ne suis pas propriétaire du site.
    Chaque ouverture de page déclenche le téléchargement d'un fichier qui est en libre accès par le site en question.
    Mais comme il y a plusieurs milliers de fichiers, je souhaiterais en automatiser le téléchargement.

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    Bonsoir,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var deb = 9782000000000,
        fin = 9799999999999,
        url, i;
    for( i=deb; i< fin; i++){
      url = 'http://www.urldusite/' +i +'/RepertoireFixe/';
      console.log( url);
    }
    Attention cela peut être long, très long!

  7. #7
    Membre habitué Avatar de guenfood
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2004
    Messages : 254
    Points : 126
    Points
    126
    Par défaut
    Merci pour la réponse.

    Je suis en train de tester. Et effectivement.... c'est très long

    Pour le moment, la page "mouline", mais rien ne se passe. Aucun fichier n'est téléchargé après plusieurs minutes.

    Voilà le code utilisé :

    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
    <script type="text/javascript">
        var deb = 9782000000000,
        fin = 9799999999999,
        url, i;
    for( i=deb; i< fin; i++){
      url = 'http://www.librairiedialogues.fr/ws/book/' +i +'/unimarc_utf-8/';
      var win = window.open(url,"mywindow");
        var interval;
        function closePopup()
        {
            win.close();
            clearInterval(interval);
        }
        interval=setInterval(closePopup,2000); 
    }
     
    </script>
    Peut-être devrais-je rajouter un élément pour passer à url suivante si url est inexistante ?
    Du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!aElem[url].href) continue;

  8. #8
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Juste pour être sûr, est-ce que tu as conscience qu'avec ce code tu essaies d'ouvrir 10 MILLIARDS de popups en même temps ?
    Cela m'étonnerait que ce site propose autant de fiches de livre. Il doit s'agir d'une référence interne très variable.

    J'ignore pourquoi tu cherches à récupérer l'intégralité de ces fichiers mais je pense que la meilleure chose à faire serait de demander gentiment aux propriétaires du site s'ils peuvent t'envoyer un ZIP avec les données. Et s'ils refusent, alors peut-être qu'on ne devrait pas t'aider.

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    tu as conscience qu'avec ce code tu essaies d'ouvrir 10 MILLIARDS de popups en même temps ?
    Et aussi que tu crées 10 milliards de fois la même fonction, 10 milliards de fois le même timer que du reste tu essayes de détruire 10 milliards de fois !

  10. #10
    Membre habitué Avatar de guenfood
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2004
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2004
    Messages : 254
    Points : 126
    Points
    126
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Et aussi que tu crées 10 milliards de fois la même fonction, 10 milliards de fois le même timer que du reste tu essayes de détruire 10 milliards de fois !
    C'est la raison pour laquelle je viens sur ce forum
    Pour savoir si c'est possible d'une part, et comment procéder d'autre part.

    Si le code n'est pas bon ou si ce que je souhaite n'est pas possible, pas de soucis.
    Si c'est possible, même si ça prend du temps, je pense que la fonction peut être utile aussi à d'autres personnes.

  11. #11
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Points : 6 755
    Points
    6 755
    Par défaut
    10 milliards de requêtes HTTP, dont au final 95% renvoient une 404, c'est une catastrophe écologique. Je ne peux pas cautionner ça.

    Le site utilise des identifiants uniques pour créer les adresses de ses fichiers. Il est vital que tu aies accès à une liste (au moins partielle) de ces identifiants, car tester dans le vide 10 milliards d'adresses ce n'est pas raisonnable. Faisons un bref calcul avec des hypothèses grossières :
    1. Ton navigateur (et ton OS, et ta box) peut faire 256 requêtes HTTP en même temps (j'ai pris cette valeur dans la config par défaut de Firefox). En réalité, c'est certainement beaucoup moins. Et quand bien même, en générant autant de requêtes vers la même destination, tu pourrais te faire bannir par le serveur ou un proxy pour tentative de DoS.
    2. Une requête HTTP vers le serveur prend invariablement 500 ms aller-retour. C'est une hypothèse généreuse : une bonne connexion haut débit, un serveur pas surchargé, ça doit être les heures creuses, c'est pour ça.

    Avec ça, tu peux faire 256 * 2 requêtes par seconde, et tu atteins le nombre de 10 milliards de requêtes en 19 531 250 secondes, soit :
    226 jours, 1 heure, 20 minutes et 50 secondes !

  12. #12
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 060
    Points : 44 585
    Points
    44 585
    Par défaut
    10 Milliards, 10 Milliards vous n'avez que ce mot à la bouche alors je veux bien prendre la différence (fin-deb) -10000000000.

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

Discussions similaires

  1. lien avec variable
    Par Mais.Ouais dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 15/06/2009, 17h18
  2. Ouverture de lien avec window.open()
    Par Janitrix dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/10/2007, 09h28
  3. [PHP-JS] Lien avec variable
    Par el_amiral dans le forum Langage
    Réponses: 1
    Dernier message: 27/04/2007, 08h38
  4. [Cookies] lien avec variable
    Par c+cool dans le forum Langage
    Réponses: 4
    Dernier message: 14/03/2007, 10h28
  5. [W3C] lien avec variables
    Par Eisy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 21/03/2006, 13h30

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