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 :

Importer du code HTML live depuis une autre page


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 302
    Points : 316
    Points
    316
    Par défaut Importer du code HTML live depuis une autre page
    Bonjour,

    Sur un serveur que je ne contrôle pas, il y a une page, appelons-la "SOURCE, qui contient un bout de code HTML généré par Javascript. Ce bout de code me donne l'état d'un certain serveur. J'aimerais prendre ce bout de code live et le mettre dans une autre page HTML, disons DESTINATION, sur un serveur que je contrôle. Quelles sont mes options ?

    J'ai essayé d'écrire une petite application web qui demande le code de la page SOURCE puis par manipulation du DOM n'affiche que la partie intéressante. Sauf que, puisque cette partie est généré par Javascript, elle ne renvoi que le placeholder vide.

    Est-ce que je peux utiliser par exemple une IFRAME et manipuler son contenu pour en extraire uniquement la partie intéresante ?

    Merci pour votre aide.

  2. #2
    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
    Le choix le plus logique est l'iframe, mais non tu ne pourras pas accéder au contenu ni le modifier à l'intérieur de la page source pour des raisons de sécurité.

    Une autre option est de récupérer le document en AJAX, mais il faut que le domaine SOURCE soit configuré pour autoriser les requêtes cross-domain. Par défaut ce n'est pas le cas.

    Enfin la dernière option est de passer par un serveur tiers, qui requête la page, récupère le contenu désiré et le modifie, puis renvoie le tout à ton site DESTINATION.
    One Web to rule them all

  3. #3
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    Sinon tu peux regarder du cote YQL https://developer.yahoo.com/yql/
    MCTS Microsoft.
    La conception : Prendre le temps pour gagner du temps.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Dans la proposition de passer par ajax il est possible d'utiliser load() de jquery ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre actif Avatar de zaza576
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2013
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2013
    Messages : 175
    Points : 275
    Points
    275
    Par défaut
    Hello,

    une autre solution est de passer par PHP pour grabber la page web et n'extraire que la seule donnée dont tu as besoin.
    Voilà comment procéder de manière générale :

    1) Sur ta page web HTML, tu lances un script PHP (via Ajax éventuellement si tu veux le faire de manière asynchrone / après une certaine action sur ta page HTML).
    2) Dans ton script PHP, tu peux tenter d'obtenir le contenu de la page via : file_get_contents('URL');
    3) Ensuite, tu fais des opérations sur les chaînes de caractères pour extraire ta données via : preg_match et les fonctions str
    4) Puis, tu retournes le résultat dans ta page HTML (via Ajax par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function googleIsYourF*ck*ngFriend(String url, String maQuestion){
        goTo(url);
        reponse = find(maQuestion);
        if(isAcceptable(reponse)){
            clickOn(By.xpath("//button[@id='resolvedButton']"));
        }
        sendMessage("Merci");
    }
    
    googleIsYourF*ck*ingFriend("http://www.google.fr", "ma question");

  6. #6
    Membre averti
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2003
    Messages : 302
    Points : 316
    Points
    316
    Par défaut
    Merci pour vos réponses. Finalement, j'ai laissé tombé car en fouillant un peu dans le code source du HTML distant j'ai pu voir qu'il y avait des URLs appelées par ci par là pour construire la page à partir de données JSON. Donc j'ai reconstruit ma propre interface HTML à partir des réponses JSON aux requêtes que la page fait. Ça me donne un contrôle complet sur la présentation des données.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 23/02/2009, 09h21
  2. Réponses: 17
    Dernier message: 30/01/2008, 15h53
  3. Declenchement d'un javascript depuis une autre page
    Par mcrbe dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/03/2006, 11h30
  4. fermer une popup depuis une autre page que l'opener
    Par totoche dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/12/2005, 14h31
  5. valeur d'un champ de formulaire ajouté depuis une autre page
    Par manaboko dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/12/2005, 09h29

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