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

ASP.NET Discussion :

Recuperer le contenu html d'un site avec WebBrowser asp.net


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2016
    Messages : 6
    Points : 9
    Points
    9
    Par défaut Recuperer le contenu html d'un site avec WebBrowser asp.net
    Salut je suis bloqué depuis plusieur jour . Voilà mon problème: Dans mon site j'ai besoin d'utiliser le resultat html d'un moteur de recherche comme startpage ou google.
    Le but de mon site est d'aider des utilisateur à retrouver les sites pertinents parlant d'un sujet donné. Par exemple pour le sujet cuisine africaine, nous aurons besoins d'analyser et filtrer les sites que les utilisateurs vont pourvoir voir sur notre site (ceci se fera coté admin). Pour cela, je veux utiliser webBrowser ou webClient pour recuperer les url de ces dits sites afin de les analyser une à une selon nos critères.

    J'ai beaucoup chercher sur des forums les sujet similaire mais rien ne me sourit. Je n'arrive pas à recuperer le contenu html d'un resultat renvoyé par google ou bing.

    Voici le code que j'utilise jusqu'alors mais sans succes . Merci
    La classe FormulaireDeSaisie est une classe heritant de Form
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
    string ContenuHtml="";
    FormulaireDeSaisie formulaire = null;
            public  void fonctionRenvoieLiens(string cuisine)
            {
                string text1 = "";
                try
                {
                    Thread thread = new Thread(delegate ()
                    {
                        formulaire = new FormulaireDeSaisie();
                        formulaire.webBrowser1.DocumentCompleted += Browser_DocumentCompleted;
                        formulaire.button1.Click += new System.EventHandler(this.button1_Click);
                        formulaire.webBrowser1.Url=new Uri("https://www.google.com/search?q="+cuisine);
                        formulaire.ShowDialog();
     
                        //  if (formulaire != null) formulaire.Dispose();
                    });
                    thread.SetApartmentState(ApartmentState.STA);
                    thread.Start();
                    thread.Join();
                }
                catch (Exception e)
                {
                    MessageBox.Show("Test:: " + text1+"\n"+e);
                }
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                Thread thread = new Thread(new ThreadStart(_fonction));
                thread.Start();
                thread.Join();
            }
     
            private void _fonction()
            {
                try
                {
                    IAsyncResult rec3 = formulaire.webBrowser1.BeginInvoke(new myDelegete(RecupereContenu));
                    formulaire.webBrowser1.EndInvoke(rec3);
                }
                catch (Exception e1)
                {
                  //  MessageBox.Show(""+e1);
                }
            }
     
         private void RecupereContenu()
            {
                ContenuHtml=formulaire.webBrowser1.DocumentText;
            }
     
     
    // La classe FormulaireDeSaisie
     public class FormulaireDeSaisie:Form
        {
            public WebBrowser webBrowser1;
            public Button button1;
            public string text { get; set; }="";
     
            public FormulaireDeSaisie()
            {
                InitializeComponent();
            }
     
            private void InitializeComponent()
            {
                this.webBrowser1 = new System.Windows.Forms.WebBrowser();
                this.button1 = new System.Windows.Forms.Button();
                this.SuspendLayout();
                // 
                // webBrowser1
                // 
                this.webBrowser1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                | System.Windows.Forms.AnchorStyles.Left)
                | System.Windows.Forms.AnchorStyles.Right)));
                this.webBrowser1.Location = new System.Drawing.Point(3, -1);
                this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20);
                this.webBrowser1.Name = "webBrowser1";
                this.webBrowser1.Size = new System.Drawing.Size(619, 405);
                this.webBrowser1.TabIndex = 0;
                // 
                // button1
                // 
                this.button1.Anchor = System.Windows.Forms.AnchorStyles.Bottom;
                this.button1.Location = new System.Drawing.Point(263, 410);
                this.button1.Name = "button1";
                this.button1.Size = new System.Drawing.Size(75, 23);
                this.button1.TabIndex = 1;
                this.button1.Text = "button1";
                this.button1.UseVisualStyleBackColor = true;
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(634, 436);
                this.Controls.Add(this.button1);
                this.Controls.Add(this.webBrowser1);
                this.Name = "Form1";
                this.Text = "Form1";
                this.ResumeLayout(false);
     
            }
     
        }

  2. #2
    Membre chevronné

    Profil pro
    Chef de Projet / Développeur
    Inscrit en
    Juin 2002
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de Projet / Développeur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2002
    Messages : 608
    Points : 2 070
    Points
    2 070
    Par défaut
    Bonjour,

    Tu peux essayer de parcourir les éléments de : webBrowser1 .Document.All.
    Le premier qui contient un InnerHtml différent de null correspond généralement au body et contient donc toute la page.


    webBrowser1 .Document.All est à la fois un truc à plat ET une arborescence.

    webBrowser1 .Document.All[1].FirsChild peut correspondre à webBrowser1 .Document.All[2].

    En se servant de cette particularité ou en utilisant un webBrowser1.Document.All["id_d_un_item_de_haut_niveau"].InnerHtml,
    on peut limiter l'analyse du HTML en laissant le contrôle faire une partie du boulot.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Gabon

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2016
    Messages : 6
    Points : 9
    Points
    9
    Par défaut
    Merci vanquish, je vais essayer et informer si ça repond à mes besoins

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

Discussions similaires

  1. Erreur avec: Menu <Site Web> <Configuration ASP.NET>
    Par PiPo123 dans le forum Visual Studio
    Réponses: 3
    Dernier message: 23/06/2011, 01h21
  2. Recuperer le contenu HTML d'une page web avec FLEX
    Par kididouille dans le forum Flex
    Réponses: 0
    Dernier message: 02/06/2010, 15h45
  3. Réponses: 1
    Dernier message: 16/11/2009, 16h09
  4. recuperer un contenu HTML avec PL/SQL
    Par Grybukas dans le forum PL/SQL
    Réponses: 6
    Dernier message: 12/04/2009, 10h51
  5. Réponses: 4
    Dernier message: 20/02/2007, 11h07

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