none
affichage d'information

    Question

  • bonjour,

    voila je suis entrain de faire une application ( Windows form en c#) qui doit me permettre de récupéré les news a partir d'un site web d'info pour les afficher dans ma form et qu'elle les affiches les uns au dessus des autres par ordre d'arrivé. mais je sais pas trop comment m'y prendre.

    merci pour votre aide


    Cardinal dev

    mercredi 6 juillet 2016 11:36

Réponses

  • Bonjour,

    La question est : avez-vous le droit d'utiliser ces données ?

    Si le site les expose sous forme de flux rss, atom, webservice, api rest & co, oui, vous pouvez le faire (et il doit certainement ajouter quelque part sur le site une règle d'utilisation de ces données).

    Si ce n'est pas le cas, il faut contacter le "webmaster" pour savoir si vous pouvez exploiter ses données. Et si oui comment.

    Après, vous pouvez le faire à la "one again" - "I'm a poor cowboy" : j'aspire les données du site, je les reformate, je les exploite, et je les publie dans une appli que je vends 250€ (alors que le site est gratuit) sans lui dire.

    Bon Ok, la dernière solution est pas très "correcte", mais y'a plein de gens qui le font (je ne citerais personne en particulier mais j'ai bien une idée...)


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    mercredi 6 juillet 2016 16:01
  • donc si je comprends bien si un site ne dispose pas de flux rss ou de API pour faire sa. il ne peut pas bénéficier d'une telle application

    Cardinal dev

    Bonjour,

    J'ajouterai une réponse de bisounours qui suppose que si on veut développer une application pour extraire les informations d'un site, c'est que soit on est d'accord avec l'administration du site, soit on veut le faire seulement pour son propre compte "à titre de copie à l'usage privé du copiste", et donc pas pour la mettre à disposition de quelqu'un d'autre.

    On peut analyser la structure de la page (en supposant qu'elle soit stable), et extraire ensuite les données. Si on a de la chance on a affaire à une structure XML propre (logiquement XHTML donc) auquel cas une extraction de type XPath fera gagner un temps fou (une fois bien entendu la syntaxe XPath et les manipulations associées assimilées).

    Autrement on peut le faire "à l'ancienne" en repérant un mot-clé et en sachant de combien il faut avancer ou reculer par rapport à ce mot-clé. Certains appellent ça la méthode "marteau-burin".

    Et un autre inconvénient de faire ça dans son coin est que rien ne garantit que le site ne va pas modifier du tout au tout la structure de ses pages la semaine d'après, auquel cas tout est à refaire.

    mercredi 6 juillet 2016 18:28
  • Au pire si pas de flux RSS, tu peux utiliser un control webbrowser et afficher la page dans ton application (l'avantage étant que si le webmaster change son code ta page s'affiche tel qu'il l'a conçu et ton appli ne bug pas et qu'il n'y a pas de problème de droit). Et si tu tiens à afficher autrement les données, dans l'évènement  webBrowser1_DocumentCompleted tu dois pouvoir récupérer les données html et les mettre dans une datagridview (en rendant ton webbrowser invisible bien sur).

    Autre solution pour récupérer des page web utiliser webclient:

    WebClient client = new WebClient();

    string downloadString = client.DownloadString("http://www.gooogle.com");

    //Ici code pour extraire


    jeudi 14 juillet 2016 10:15

Toutes les réponses

  • Bonjour philippe gerard,

    Pour récupérer les informations en temps réels, assurez-vous que le site propose un flux (RSS) ou une API pour pouvoir requêter cela et récupérer les articles.

    Pour le RSS, vous trouverez un exemple ici : Using SyndicationFeed to display photos from spaces.live.com

    Si vous devez passer par une API, utilisez les classes C# pour requêter du HTTP en lui passant les bonnes commandes.

    Cordialement,

    mercredi 6 juillet 2016 12:02
  • donc si je comprends bien si un site ne dispose pas de flux rss ou de API pour faire sa. il ne peut pas bénéficier d'une telle application

    Cardinal dev

    mercredi 6 juillet 2016 15:06
  • Bonjour,

    La question est : avez-vous le droit d'utiliser ces données ?

    Si le site les expose sous forme de flux rss, atom, webservice, api rest & co, oui, vous pouvez le faire (et il doit certainement ajouter quelque part sur le site une règle d'utilisation de ces données).

    Si ce n'est pas le cas, il faut contacter le "webmaster" pour savoir si vous pouvez exploiter ses données. Et si oui comment.

    Après, vous pouvez le faire à la "one again" - "I'm a poor cowboy" : j'aspire les données du site, je les reformate, je les exploite, et je les publie dans une appli que je vends 250€ (alors que le site est gratuit) sans lui dire.

    Bon Ok, la dernière solution est pas très "correcte", mais y'a plein de gens qui le font (je ne citerais personne en particulier mais j'ai bien une idée...)


    Richard Clark
    Consultant - Formateur .NET
    http://www.c2i.fr
    Depuis 1996: le 1er site .NET francophone

    mercredi 6 juillet 2016 16:01
  • Pour faire suite à la réponse de Richard Clark, vous pouvez directement "analyser" le code HTML côté client du site en question, mais cette astuce est beaucoup plus risquée : voire le message de Richard.

    Cordialement,

    mercredi 6 juillet 2016 16:27
  • donc si je comprends bien si un site ne dispose pas de flux rss ou de API pour faire sa. il ne peut pas bénéficier d'une telle application

    Cardinal dev

    Bonjour,

    J'ajouterai une réponse de bisounours qui suppose que si on veut développer une application pour extraire les informations d'un site, c'est que soit on est d'accord avec l'administration du site, soit on veut le faire seulement pour son propre compte "à titre de copie à l'usage privé du copiste", et donc pas pour la mettre à disposition de quelqu'un d'autre.

    On peut analyser la structure de la page (en supposant qu'elle soit stable), et extraire ensuite les données. Si on a de la chance on a affaire à une structure XML propre (logiquement XHTML donc) auquel cas une extraction de type XPath fera gagner un temps fou (une fois bien entendu la syntaxe XPath et les manipulations associées assimilées).

    Autrement on peut le faire "à l'ancienne" en repérant un mot-clé et en sachant de combien il faut avancer ou reculer par rapport à ce mot-clé. Certains appellent ça la méthode "marteau-burin".

    Et un autre inconvénient de faire ça dans son coin est que rien ne garantit que le site ne va pas modifier du tout au tout la structure de ses pages la semaine d'après, auquel cas tout est à refaire.

    mercredi 6 juillet 2016 18:28
  • Au pire si pas de flux RSS, tu peux utiliser un control webbrowser et afficher la page dans ton application (l'avantage étant que si le webmaster change son code ta page s'affiche tel qu'il l'a conçu et ton appli ne bug pas et qu'il n'y a pas de problème de droit). Et si tu tiens à afficher autrement les données, dans l'évènement  webBrowser1_DocumentCompleted tu dois pouvoir récupérer les données html et les mettre dans une datagridview (en rendant ton webbrowser invisible bien sur).

    Autre solution pour récupérer des page web utiliser webclient:

    WebClient client = new WebClient();

    string downloadString = client.DownloadString("http://www.gooogle.com");

    //Ici code pour extraire


    jeudi 14 juillet 2016 10:15