Quelle indexation pour un arbre n-aire sans ordre ?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par ortolojf, 9 Octobre 2021.

  1. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 681
    J'aime reçus:
    39
    Bonjour

    J'ai adapté un code d'arbre binaire en n-aire, pour représenter une page html.

    C'est donc un arbre non ordonné.

    Un noeud est de la forme :

    PHP:

    class $Node {
          public 
    $data;
            public 
    $children;
            public function 
    __construct($data)
            {
                    
    $this->data=$data;
                    
    $this->children=array();
            }
            public function 
    disp_data()
            {
                    echo 
    $this->data;
            }
    }
    //end class Node

    Les children sont les fils directs d'un même niveau de l'arbre.

    Evidemment, on peut y accéder par leurs index : $chidren[$i] etc...

    J'ai fait ceci : Parcours en preorder et en levelorder.

    Recherche en preorder et levelorder.

    Insertion( levelorder ).

    La comparaison des noeuds se fait par égalité d objet.

    Pour ce qui est de l'interface de l'insertion, j'insère à un emplacement précis ( parent et index ).

    Celà vous semble-t-il suffisant, ou faut-il indiquer l'endroit où insérer d'une autre manière ?

    Merci beaucoup de votre aide,

    Voici un exemple d'arbre fait avec mon interface :


    Code:
    *****************************************
    nTree Object
    (
        [root] => Node Object
            (
                [data] => Ancêtre
                [children] => Array
                    (
                        [0] => Node Object
                            (
                                [data] => Fils_1
                                [children] => Array
                                    (
                                        [0] => Node Object
                                            (
                                                [data] => PetitFils_1_1
                                                [children] => Array
                                                    (
                                                    )
                                            )
                                        [1] => Node Object
                                            (
                                                [data] => Petit Fils_1_2
                                                [children] => Array
                                                    (
                                                    )
                                            )
                                    )
                            )
                        [1] => Node Object
                            (
                                [data] => Fils_2
                                [children] => Array
                                    (
                                        [0] => Node Object
                                            (
                                                [data] => Petit Fils_2_1
                                                [children] => Array
                                                    (
                                                    )
                                            )
                                        [1] => Node Object
                                            (
                                                [data] => Petit Fils_2_2
                                                [children] => Array
                                                    (
                                                    )
                                            )
                                        [2] => Node Object
                                            (
                                                [data] => Petit Fils_2_3
                                                [children] => Array
                                                    (
                                                    )
                                            )
                                    )
                            )
                        [2] => Node Object
                            (
                                [data] => Fils_3
                                [children] => Array
                                    (
                                    )
                            )
                        [3] => Node Object
                            (
                                [data] => Fils_4
                                [children] => Array
                                    (
                                    )
                            )
                    )
            )
    )
    *******************************************
    ***            PARCOURS EN LEVEL ORDER        ***
    *******************************************
        Ancêtre    Fils_1    Fils_2    Fils_3    Fils_4    PetitFils_1_1    Petit Fils_1_2    Petit Fils_2_1    Petit Fils_2_2    Petit Fils_2_3
    *******************************************
    ***            PARCOURS EN PRE ORDER        ***
    *******************************************
        Ancêtre    Fils_1    PetitFils_1_1    Petit Fils_1_2    Fils_2    Petit Fils_2_1    Petit Fils_2_2    Petit Fils_2_3    Fils_3    Fils_4
    *******************************************
    
    
     
  2. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 681
    J'aime reçus:
    39
    Rebonjour

    L'autre option pour des insert ( au lieu de parent et indice de children ), serait l'objet à remplacer, ainsi qu'un booléen pour "même niveau que objet"/"fils de objet".

    L'option ( parent/children ) nécessite par le processus qui insère, le rang d'index du child à remplacer/insérer.

    Mais cette option est un peu plus rapide que la dernière.

    Ce modèle d'arbre en-aire est destiné à représenter un DOMDocument ( en PHP ).

    Je souhaite parcourir un DOMDocument en levelorder, et je ne sais pas faire autrement que de passer par un arbre n-aire.

    Je peux fournir mon code d'arbre n-aire.

    Merci beaucoup de votre aide.
     
  3. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 681
    J'aime reçus:
    39
    Bonjour

    J''ai besoin de parcourir un arbre n-aire en inorder.

    C'est -à-dire : ( pour un arbre binaire ) : sous-arbre-gauche, sous-arbre-droit, racine-sous-arbre.

    Mais qu'est-ce que celà donnerait pour un arbre n-aire ?

    Peut-être : tous-fils-d'un-noeud , noeud ?

    Quel est l'algorithme récursif ?

    Ci-dessous est-il correct ?

    Merci.

    PHP:

    <?php
    class Node
    {
            public 
    $data;
            public 
    $parent;
            public 
    $children;
            public function 
    __construct($data)
            {
                    
    $this->data=$data;
                    
    $this->parent null;
                    
    $this->children=array();
            }
            public function 
    disp_data()
            {
                    echo 
    $this->data;
            }
    }
    //end class Node
    class nTree
    {
            public 
    $root;
            
    //public $s;
            
    public function __construct()
            {
                    
    $this->root=null;
                    
    //$this->s=file_get_contents('store');
            
    }
            
    /*************************************/
            /**    FONCTION VISIT DISPLAY OBJECT    **/
            /*************************************/
            
    public function visit($current) {
                    echo 
    "\t" $current->data;
            }
            
    /****************/
            /**    INORDER    **/
            /****************/
            
    public function inorder($local_root)
            {
                    if(
    $local_root===null
                            return 
    false;
                    
    $tmp_count count($local_root->children);
                    for(
    $i 1$i $tmp_count 1$i++) {
                                    
    $this->inorder($local_root->children[$i 1]);
                            
    $this->visit($local_root->children[$i]);
                                    
    $this->inorder($local_root->children[$i 1]);
                    }
            } 
    }
    ?>

     
  4. u327550
    u327550 WRInaute discret
    Inscrit:
    12 Mars 2020
    Messages:
    184
    J'aime reçus:
    25
    bonjour,

    N'est il pas plus urgent de modifier d'abord la partie SEO que la technique ? Cela ne reste que mon opinion biensur.

    Problème SEO :
    URL mal formatée pour le SEO
    Qu'est-ce que c'est et comment le corriger ?


    CE PROBLÈME EST SUR 137 PAGES

    par exemple : https://www.pronostics-courses.fr/php/courses_nouvelles/pronostics_new_courses,14.html
    https://www.pronostics-courses.fr/php/courses_anciennes/pronostics_new_old_courses,2110090402.html

    Le mélange français / anglais n'est pas très agréable et je pense n'apporte rien en terme de référencement.

    Depuis le temps je ne trouve pas sur google le site sur la requête :
    Statistiques Courses de Chevaux


    Vouloir de la technique, automatiser, coder ..., certes c'est louable mais la partie design et seo est importante aussi.

    Une belle bannière en accueil avec des chevaux cela dynamise le tout. Cela demeure fade en accueil, trop statique (le contraire donc du monde hippique qui bouge ...)

    Regardez comme c'est joli : https://pixabay.com/fr/photos/cheval-blanc-hiver-neige-décembre-3010129/

    Cette nature, les animaux ...

    Sans biensur rentrer dans le côté galerie de photos, ce n'est pas le but je pense.

    Mais cela donne un côté frais, de peps, on a envie d'être à côté du cheval ...
     
  5. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 681
    J'aime reçus:
    39
    Merci beaucoup voyance

    L'arbre n-aire que je fais est destiné à mon script evaluation.php , qui notera mes pages en fonction de leur indexabilité, suivant pratiquement les mêmes critères que RM-Tech.

    Ces arbres n-aires ( mes pages html ), me permettront de parser ces pages en levelorder ( largeur ), ce que je ne sais pas faire en PHP avec DOMDocument.

    Le DOMDocument ne me me permet que le preorder.

    Le levelorder est nécessaire à mon évaluation des H1-Hn.

    Pour des notes inférieures à une limite, je mettrai des noindex et des nofollow.

    Celà a donc de l'importance pour mon SEO.

    Amicalement.
     
  6. u327550
    u327550 WRInaute discret
    Inscrit:
    12 Mars 2020
    Messages:
    184
    J'aime reçus:
    25
    Quoi donc ? La balise H1 ? Beaucoup de complications j'ai l'impression ...
     
  7. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    20 899
    J'aime reçus:
    845
    c'est pourtant un des trucs les plus simples prévus par @ortolojf depuis longtemps :)

    Bon, trêve de plaisanteries, est-ce que les internautes cherchent dans Google des infos sur des courses passées il y a des mois voire des années ? si la réponse est non, pourquoi les conserver sur le site ? (en tout cas indexables)
     
    spout apprécie ceci.
  8. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 681
    J'aime reçus:
    39
    Bonjour Monsieur Duffez

    J'ai désindexé début Juillet sur GSC toutes mes pages anciennes.

    J'ai enlevé le sitemap pour les pages anciennes.

    Les liens vers les pages anciennes sont dans mon calendrier.

    Seulement jusqu'à 160 jours dans le passé.

    Les glissements de mois se font en mode post, le calendrier est en php.

    Si je remettais les sitemaps en mode glissant 160 jours, j'aurais tout le temps des erreurs 404/410 sur GSC.

    Avec ce script evaluation.php , je cherche à automatiser ma gestion des pages désindexées.

    Merci beaucoup de votre aide.

    Respectueusement.
     
  9. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    20 899
    J'aime reçus:
    845
    Faut prendre le pb dans l'autre sens et se demander en amont, quels genres de pages doivent être indexées.
    Je ne vois pas l'intérêt de faire une usine à gaz pour identifier après coup les pages à supprimer (sachant qu'elles n'auront peut-être jamais généré de clics).

    Que demandent (à Google) les internautes que tu vises ?
    Et donc, quels contenus tu dois proposer sur ton site ?
    Les as-tu créés ?

    voilà les questions à se poser. Le reste, ça peut t'occuper encore les 15 prochaines années...
     
    u327550 apprécie ceci.
  10. mickou51
    mickou51 WRInaute discret
    Inscrit:
    8 Janvier 2016
    Messages:
    210
    J'aime reçus:
    23
    [​IMG]

    C'est tout de même un petit peu plus beau en jouant seulement 5 minutes avec la console


    Code:
    Ajouté:
    <div style="background: url(<l'image_du_cheval>);height: 750px;background-size:  cover;background-position-y:  center;">
      test
    </div>
    
    Modifié:
    div.blochaut {
        border: 0;
        font-size: 1.25em;
        font-weight: 400;
        padding: 0;
        width: 95%;
        position: absolute;
        top: 50%;
    }
    (la mauvaise qualité de l'image vient de la capture d'écran pour gif )
     
  11. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 681
    J'aime reçus:
    39
    Je ne comprend pas.

    Ce programme d'arbre n-aire est également destiné à ma future PWA, et j'amasse actuellement, les outils que j'utiliserai ( PWA ou site ).

    Pour ce qui est du contenu, mes visiteurs sont des obsessionnels, qui aiment les chiffres.

    J'ai à terme l'intention de voir avec un graphiste comment modifier mon site.

    Mon soft consistera **en amont**, à laisser ou non les pages se faire indexer.

    J'ai une façon de concevoir ce site/PWA, technique, car l'utilité réelle que j'y vois pour les visiteurs, est mon moteur statistique.

    A quoi servirait un site de Turf, si ses visiteurs ne gagnaient pas, ou moins que ses concurrents ?

    Mon approche pour le moment est technique, je dauberai après.

    Celà dit, peut-être que je fais une erreur en ne faisant pas tout de suite, appel à un graphiste.

    Peut-être faut-il soigner de la même façon l'extérieur et l'intérieur.

    Amicalement.
     
  12. u327550
    u327550 WRInaute discret
    Inscrit:
    12 Mars 2020
    Messages:
    184
    J'aime reçus:
    25
    Malheureusement google est un obsessionnel du contenu (texte riche ...), donc tant que les problèmes SEO (les urls par exemple) et le contenu seront aussi pauvres il n y aura pas foule de visiteurs.

    Et pour les visiteurs (nouveaux) il faut un bon référencement. Ou alors seul les habitués comptent.

    Très joli Mickou l'image comme cela c'est bien plus vivant mais je pense que nous écrivons dans le vent .....
     
    spout et mickou51 aiment ça.
  13. u327550
    u327550 WRInaute discret
    Inscrit:
    12 Mars 2020
    Messages:
    184
    J'aime reçus:
    25
    Aussi, pourquoi des majuscules à tous les mots ?

    Statistiques Prévisionnelles
    Pronostics
    Historiques Graphiques
    Courses

    7 majuscules pour à peine deux ligne de texte dès l'accueil.
     
  14. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 681
    J'aime reçus:
    39
    Bon voilà.

    J'ai l'algorithme suffixe de parcours d'arbre n-aire.

    C'est pour deleter les fils avant les pères.

    Je vais me pencher sur l'application à evaluation.php ( H1 ... Hn ).

    D'abord, mapper le DOMDocument vers l'arbre n-aire.

    Merci beaucoup de votre aide.
     
  15. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    20 899
    J'aime reçus:
    845
    Je crois bien qu'on n'est pas dans la même planète, désolé mais là je ne peux plus aider.
     
    spout apprécie ceci.
  16. u327550
    u327550 WRInaute discret
    Inscrit:
    12 Mars 2020
    Messages:
    184
    J'aime reçus:
    25
    j'ai le sentiment aussi que peu importe les remarques justes de certains, on crache dans la soupe ...
     
  17. u327550
    u327550 WRInaute discret
    Inscrit:
    12 Mars 2020
    Messages:
    184
    J'aime reçus:
    25
    Deux ligneS *
     
  18. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 681
    J'aime reçus:
    39
    Voilà, voilà

    Avec le PHP DOMDocument de ma page d'accueil :

    Je n'ai plus qu'à lire en level order. ;)


    Code:
    Node Object
    (
        [tag] => html
        [value] => 
        [attrs] => Array
            (
                [lang] => fr
            )
        [Parent] => 
        [Children] => Array
            (
                [0] => Node Object
                    (
                        [tag] => head
                        [value] => 
                        [attrs] => Array
                            (
                            )
                        [Parent] => Node Object
     *RECURSION*
                        [Children] => Array
                            (
                                [0] => Node Object
                                    (
                                        [tag] => meta
                                        [value] => 
                                        [attrs] => Array
                                            (
                                                [http-equiv] => Content-Type
                                                [content] => text/html; charset=utf-8
                                            )
                                        [Parent] => Node Object
     *RECURSION*
                                        [Children] => Array
                                            (
                                            )
                                        [nLastChild] => 0
                                    )
                                [1] => Node Object
                                    (
                                        [tag] => meta
                                        [value] => 
                                        [attrs] => Array
                                            (
                                                [name] => viewport
                                                [content] => width=device-width, initial-scale=1.0
                                            )
                                        [Parent] => Node Object
     *RECURSION*
                                        [Children] => Array
                                            (
                                            )
                                        [nLastChild] => 1
                                    )
                .....
                            )
                        [nLastChild] => 1
                    )
            )
        [nLastChild] => 0
    )
    
    
     
  19. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 681
    J'aime reçus:
    39
    Et voilà voilà

    En level order.

    Il y a tout ce qu'il faut pour mon soft.

    Merci beaucoup pour votre aide.

    Amicalement.


    Code:
        Level : 0    Tag : html   
        Attrs : Array
    (
        [lang] => fr
    )
    *************************************
        Parent : html
    --------------------------------------
        Level : 1    Tag : head   
    *************************************
        Parent : html
    --------------------------------------
        Level : 1    Tag : body   
        Attrs : Array
    (
        [itemscope] => 
        [itemtype] => http://schema.org/WebPage
    )
    *************************************
        Parent : head
    --------------------------------------
        Level : 2    Tag : meta   
        Attrs : Array
    (
        [http-equiv] => Content-Type
        [content] => text/html; charset=utf-8
    )
    *************************************
        Parent : head
    --------------------------------------
        Level : 2    Tag : meta   
        Attrs : Array
    (
        [name] => viewport
        [content] => width=device-width, initial-scale=1.0
    )
    *************************************
        Parent : head
    --------------------------------------
        Level : 2    Tag : link   
        Attrs : Array
    (
        [rel] => canonical
        [href] => https://www.pronostics-courses.fr/
    )
    *************************************
        Parent : head
    --------------------------------------
        Level : 2    Tag : title    Statistiques et Pronostics Courses de Chevaux
    *************************************
        Parent : head
    --------------------------------------
        Level : 2    Tag : meta   
        Attrs : Array
    (
        [name] => keywords
        [content] => cheval, chevaux, pronostics, courses de chevaux, pronostic, pronostics courses, pronostics courses de chevaux, estimations prévisionnelles, base de données courses
    )
    *************************************
        Parent : head
    --------------------------------------
        Level : 2    Tag : meta   
        Attrs : Array
    (
        [name] => description
        [content] => Statistiques, Pronostics et Historiques Graphiques sur les Courses de Chevaux
    )
    *************************************
        Parent : head
    --------------------------------------
        Level : 2    Tag : meta   
        Attrs : Array
    (
        [name] => author
        [content] => Jean-Francois Ortolo
    )
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : meta   
        Attrs : Array
    (
        [itemprop] => description
        [content] => Statistiques, Pronostics et Historiques Graphiques sur les Courses de Chevaux
    )
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : a   
        Attrs : Array
    (
        [class] => cache
        [itemprop] => url
        [href] => https://www.pronostics-courses.fr
        [aria-label] => Statistiques et Pronostics sur les Courses de Chevaux
    )
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : a   
        Attrs : Array
    (
        [class] => cache
        [itemprop] => breadcrumb
        [href] => https://www.pronostics-courses.fr
        [aria-label] => Statistiques et Pronostics sur les Courses de Chevaux
    )
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : span   
        Attrs : Array
    (
        [itemscope] => 
        [itemtype] => http://schema.org/Language
    )
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : div   
        Attrs : Array
    (
        [itemscope] => 
        [itemtype] => http://schema.org/AboutPage
    )
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : meta   
        Attrs : Array
    (
        [property] => og:title
        [content] => Statistiques, Pronostics et Historiques Graphiques sur les Courses de Chevaux
    )
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : meta   
        Attrs : Array
    (
        [property] => og:type
        [content] => Pronostics, Pronostics et Historiques Graphiques sur les Courses de Chevaux
    )
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : meta   
        Attrs : Array
    (
        [property] => og:url
        [content] => https://www.pronostics-courses.fr/
    )
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : p   
        Attrs : Array
    (
        [aria-hidden] => true
    )
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : h1   
    Statistiques Courses de Chevaux
        Attrs : Array
    (
        [class] => logo
    )
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : br   
    *************************************
        Parent : body
    --------------------------------------
        Level : 2    Tag : div   
        Attrs : Array
    (
        [class] => blochaut
    )
    *************************************
        Parent : span
    --------------------------------------
        Level : 3    Tag : meta   
        Attrs : Array
    (
        [itemprop] => name
        [content] => French
    )
    *************************************
        Parent : div
    --------------------------------------
        Level : 3    Tag : div   
        Attrs : Array
    (
        [itemprop] => author
        [itemscope] => 
        [itemtype] => http://schema.org/Person
    )
    *************************************
        Parent : div
    --------------------------------------
        Level : 3    Tag : div   
        Attrs : Array
    (
        [class] => bloc blocgauche
    )
    *************************************
        Parent : div
    --------------------------------------
        Level : 3    Tag : div   
        Attrs : Array
    (
        [class] => bloc blocdroite
    )
    *************************************
    
    
     
  20. ortolojf
    ortolojf WRInaute accro
    Inscrit:
    14 Août 2002
    Messages:
    3 681
    J'aime reçus:
    39
    Pour explications.

    Mon programme projeté, me permettra de détecter automatiquement les erreurs de balisage html de mon site.

    Je préfère me frotter à la programmation des arbres n-aires, plutôt que d'utiliser Tidy, pour affiner les indications des erreurs.

    Et puis, c'est un challenge pour moi, de gérer le statique et le mobile.

    C'est-à-dire : Les types d'erreurs, plus ou moins statiques, et le reste variable.

    Les arbres n-aires, sont très utiles et adaptables à beaucoup d'applications.

    Merci beaucoup.
     
Chargement...
Similar Threads - indexation arbre aire Forum Date
Search Console Erreur d'indexation mais URL testée avec succès ?! Crawl et indexation Google, sitemaps 10 Novembre 2022
Search Console Indexation "page avec redirection" Crawl et indexation Google, sitemaps 6 Octobre 2022
WordPress Site multilingues - Mauvaise indexation Crawl et indexation Google, sitemaps 27 Septembre 2022
Problème de crawl et d'indexation Crawl et indexation Google, sitemaps 1 Septembre 2022
Indexation page de paiement ? Crawl et indexation Google, sitemaps 17 Août 2022
Problème d'indexation de backlinks Débuter en référencement 24 Juillet 2022
Problème d'indexation de backlinks Problèmes de référencement spécifiques à vos sites 21 Juillet 2022
Désindexation images en changeant de format (passage à WebP) Crawl et indexation Google, sitemaps 12 Juillet 2022
6 mois après, pas d'indexation correcte dans Google Problèmes de référencement spécifiques à vos sites 8 Juillet 2022
Problème désindexation des pages de Google Débuter en référencement 21 Juin 2022
Indexation à rebours. Crawl et indexation Google, sitemaps 5 Juin 2022
Problème d'indexation de pages sur Google Problèmes de référencement spécifiques à vos sites 31 Mai 2022
référencement site en anglais : indexation plus longue Référencement international (langues, pays) 13 Mai 2022
Problème d'indexation Produits Prestashop Crawl et indexation Google, sitemaps 28 Avril 2022
Problème indexation pages précises en React.js Débuter en référencement 19 Avril 2022
Pourquoi ne pas utiliser le robots.txt pour interdire l'indexation ? Débuter en référencement 14 Avril 2022
Conseil pour accélérer l'indexation de mon nouveau site Problèmes de référencement spécifiques à vos sites 9 Avril 2022
Comment puis-je obtenir l'indexation instantanée de Google ? Débuter en référencement 28 Mars 2022
Questions URL canonique, crawl et indexation Débuter en référencement 25 Mars 2022
Indexation de mon site dans Google Problèmes de référencement spécifiques à vos sites 13 Mars 2022