Recuperer le contenu html d'un site avec WebBrowser asp.net
Salut je suis bloqué depuis plusieur jour :roll:. 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
Citation:
La classe FormulaireDeSaisie est une classe heritant de Form
Code:
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);
}
} |