Comment faire apparaitre les news Yahoo en contenu dynamique

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par cheloniologue, 2 Janvier 2008.

  1. cheloniologue
    cheloniologue WRInaute impliqué
    Inscrit:
    8 Février 2006
    Messages:
    906
    J'aime reçus:
    0
    Bonjour à tous
    Tout d'abord bonne année 2008 en vous souhaitant à tous prospérité sur le net :wink:

    Voilà mon problème, J'en ai marre de prendre les news yahoo sur un sujet que je reçois par email et que je tape une a une tout les mois.
    Je cherche un moyen de faire apparaitre en contenu dynamique de façon automatique sur mon site internet.

    Je sais pas trop où m'orienter pour trouver un script ... une page explication ..? un moyen spécifique ?

    Pourriez vous m'aider ?

    D'avance je vous remercie
    G.Bruno
     
  2. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 011
    J'aime reçus:
    133
    Tu peux récupérer le flux RSS de Yahoo News et l'afficher sur ton site après l'avoir parsé, en utilisant par exemple MagpieRSS :

    http://fr.news.yahoo.com/rss/
     
  3. cheloniologue
    cheloniologue WRInaute impliqué
    Inscrit:
    8 Février 2006
    Messages:
    906
    J'aime reçus:
    0
    J'ai aussi entendu parlé de lamooche ... ou un truc dans le genre ... :roll: :roll: :roll: qu'en pensez vous ?

    Merci pour ton intervention ... je vais jeter un oeil :D
     
  4. Koxin-L
    Koxin-L WRInaute passionné
    Inscrit:
    29 Mars 2007
    Messages:
    1 532
    J'aime reçus:
    1
    Non, c'est bien ça... Mais ajouteencore un o
    C'est un excellent annuaire de Flux RSS.
    Par contre, je préfère utiliser les flux direct que de passer par lamoooche.
     
  5. cheloniologue
    cheloniologue WRInaute impliqué
    Inscrit:
    8 Février 2006
    Messages:
    906
    J'aime reçus:
    0
    Quel en est l'inconvénient ?

    :roll: :roll: :roll: :roll:
     
  6. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 011
    J'aime reçus:
    133
    Il y en a plusieurs :

    1) tu ne gère pas les fréquences de mise à jour
    2) si lamoooche est indisponible, tu n'as plus d'accès directement au flux

    Perso je préfère faire comme Koxin-L, aller chercher moi-même le flux d'origine (et soit recréer ensuite le fichier xml en local, où le sauvegarder en base de donnée, de manière à me prémunir de toute indisponibilité sur le site distant).
     
  7. cheloniologue
    cheloniologue WRInaute impliqué
    Inscrit:
    8 Février 2006
    Messages:
    906
    J'aime reçus:
    0
    Y'aurait il un tuto d'installation ??? (une page web d'explication ??)

    D'avance merci à vous deux
     
  8. Victor BRITO
    Victor BRITO WRInaute occasionnel
    Inscrit:
    21 Décembre 2006
    Messages:
    332
    J'aime reçus:
    0
    Si tu peux faire du PHP 5, tu peux utiliser SimpleXML.

    Un exemple :
    Code:
    <?php 
    // Chargement du flux RSS
    $xml = simplexml_load_file ('http://fr.news.yahoo.com/rss/');
    
    // On récupère tous les éléments item
    $item = $xml -> channel -> item;
    
    // Affichage des entrées (titre, résumé, lien et date)
    foreach ($item as $valeur)
    {
      // Formatage de la date
      // Conversion du format RSS 2.0 au format timestamp Unix
      $timestamp = strtotime ((string) $valeur -> pubDate);
      // Conversion du timestamp Unix en date compréhensible par un humain
      setlocale (LC_TIME, 'fr_FR');
      $date = strftime ('%A %e %B %Y à %Hh%M', $timestamp);
      // Sous Windows, remplacer les deux lignes ci-dessus par celles-ci
      setlocale (LC_TIME, 'fra');
      $date = strftime ('%A %d %B %Y à %Hh%M', $timestamp);
    ?>
    <h2><?php echo htmlspecialchars ((string) $valeur -> title, ENT_COMPAT, 'UTF-8') ?></h2>
    <p><?php echo htmlspecialchars ((string) $valeur -> description, ENT_COMPAT, 'UTF-8') ?></p>
    <p>Publié le <?php echo $date ?> - <a href="<?php echo $valeur -> link ?>">Lire la suite</a></p>
    <?php 
    }
    ?>
    
     
  9. cheloniologue
    cheloniologue WRInaute impliqué
    Inscrit:
    8 Février 2006
    Messages:
    906
    J'aime reçus:
    0
    Cela reste encore du chinois mais merci pour cet aide ....

    Connaissez vous une page d'explication de qualité ? Etape par etape ...

    D'avance je vous en remercie

    Bien cordialement
     
  10. darkjukka
    darkjukka WRInaute impliqué
    Inscrit:
    28 Avril 2007
    Messages:
    574
    J'aime reçus:
    0
  11. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1


    @victor
    dans ton exemple comment fais tu pour acceder l'url quand le flux se presente sous cette forme :

    j'ai cherché dans la php doc mais je sèche lamentablement. le flux est ici au cas ou ... -http://fr.news.yahoo.com/rss/fc/hardware.xml
     
  12. Victor BRITO
    Victor BRITO WRInaute occasionnel
    Inscrit:
    21 Décembre 2006
    Messages:
    332
    J'aime reçus:
    0
    Pour les éléments qui utilisent un préfixe, il faut passer par la méthode children () en indiquant comme paramètre l'espace de nom de ces élements (en gros, la valeur de l'attribut xmlns:prefixe pour les éléments dont le nom commence par prefixe:).

    Dans ton cas, il s'agit des éléments à préfixe media:, dont l'espace de nom est renseigné par l'attribut xmlns:media de l'élément racine du fil RSS (pour info, l'élément racine est rss et l'espace de nom cherché est http://search.yahoo.com/mrss/). Étant donné que les éléments media:content sont vides (Yahoo! aurait pu les coder sous la forme "<media:content />" :roll: ), seuls ses attributs nous intéressent, auxquels on peut accéder grâce à la méthode attributes ().

    Autrement dit, et en reprenant mon code :
    Code:
    <?php
    // Chargement du flux RSS
    $xml = simplexml_load_file ('http://fr.news.yahoo.com/rss/fc/hardware.xml');
    
    // On récupère tous les éléments item
    $item = $xml -> channel -> item;
    
    // Affichage des entrées (titre, résumé, lien et date)
    foreach ($item as $valeur)
    {
      // Récupération des élements media:
      // On renseigne l'espace de nom de ces éléments
      $media = $valeur -> children ('http://search.yahoo.com/mrss/');
      foreach ($media as $nom => $element)
      {
        if ($nom == 'credit') $credit = htmlspecialchars ((string) $element, ENT_COMPAT, 'UTF-8');
        // Récupération des attributs de l'élément media:content
        if ($nom == 'content')
        {
          foreach ($element -> attributes () as $attribut => $valeur_attribut)
          {
            // On force PHP à interpréter la valeur de chaque attribut comme une chaîne de caractère et non comme un objet
            $media_content[$attribut] = (string) $valeur_attribut;
          }
        }
      }
      // Formatage de la date
      // Conversion du format RSS 2.0 au format timestamp Unix
      $timestamp = strtotime ((string) $valeur -> pubDate);
      // Conversion du timestamp Unix en date compréhensible par un humain
      setlocale (LC_TIME, 'fr_FR');
      $date = strftime ('%A %e %B %Y à %Hh%M', $timestamp);
      // Sous Windows, remplacer les deux lignes ci-dessus par celles-ci
      setlocale (LC_TIME, 'fra');
      $date = strftime ('%A %d %B %Y à %Hh%M', $timestamp);
    ?>
    <h2><?php echo htmlspecialchars ((string) $valeur -> title, ENT_COMPAT, 'UTF-8') ?></h2>
    <p><img src="<?php echo $media_content['url'] ?>" alt="<?php echo htmlspecialchars ((string) $valeur -> title, ENT_COMPAT, 'UTF-8') ?>" width="<?php echo $media_content['width'] ?>" height="<?php echo $media_content['height'] ?>" /></p>
    <p><?php echo htmlspecialchars ((string) $valeur -> description, ENT_COMPAT, 'UTF-8') ?></p>
    <p>Publié le <?php echo $date ?> par <?php echo $credit ?> - <a href="<?php echo $valeur -> link ?>">Lire la suite</a></p>
    <?php
    }
    ?>
    
     
  13. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    @Victor BRITO merci pour le coup de pouce, j'aurais pu chercher encore un moment, ton code est divinement bien commenté.

    Encore MERCI :wink:
     
Chargement...
Similar Threads - apparaitre Yahoo contenu Forum Date
Comment apparaître dans le bloc "Rechercher des résultats sur" Techniques avancées de référencement 9 Février 2022
Ne pas faire apparaître les sous-pages dans le menu : impact sur leur référencement ? Débuter en référencement 21 Février 2021
Comment apparaitre sur Google Discover Référencement Google 20 Novembre 2019
Référencement local : comment apparaître sur une recherche Google YouTube, Google Images et Google Maps 28 Septembre 2019
Comment apparaitre dans les résultats de Facebook Facebook 22 Septembre 2018
Faire apparaître mes collections, menu dans google Débuter en référencement 13 Mai 2018
Faire apparaitre la description sur Google Débuter en référencement 4 Décembre 2016
Apparaitre dans la carte google map lors d'une recherche YouTube, Google Images et Google Maps 28 Novembre 2015
Images: comment apparaître en première page de Google? Débuter en référencement 4 Août 2015
Comment apparaître sur Google ? Débuter en référencement 3 Août 2015
Faire apparaitre une carte géographique ds le SERP Débuter en référencement 18 Mai 2015
Huffingtonpost - Apparaître dans la liste des sites web Référencement Google 21 Avril 2015
Apparaitre dans google actualités Débuter en référencement 7 Avril 2015
Faire apparaître la position moyenne Adwords sur Analytics Google Analytics 22 Janvier 2015
Comment apparaitre dans les résultats de recherche Google Débuter en référencement 30 Novembre 2014
Comment apparaître sur les Maps YouTube, Google Images et Google Maps 19 Août 2014
Comment ne pas apparaitre dans le whois? Noms de domaine et référencement 2 Août 2014
Comment faire apparaitre son site dans les pages google Débuter en référencement 15 Avril 2014
Quel délai pour voir apparaitre un site dans les SERP ? Problèmes de référencement spécifiques à vos sites 6 Mars 2014
Comment faire apparaitre les catégories de mon site dans les résultats google? Référencement Google 12 Février 2014