Как читать содержимое div с веб-страницы ?
Привет эксперты,
Я разработал приложение windows form. С помощью этого приложения я открываю веб-сайт. Этот веб-сайт используется для поиска данных пользователя на основе его фамилии и даты рождения. Мое приложение автоматически открывает веб-сайт. размещение фамилии и даты рождения пользователя в соответствующих текстовых полях. После этого нажимаем кнопку поиска и получаем результат.
Проблема: после получения результата на веб-странице Я должен прочитать некоторые данные со страницы. Этот результат приходит в div. Итак, как получить этот контент div.
Любая помощь будет оценена по достоинству..!
Что я уже пробовал:
<pre>using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using mshtml; using System.Collections.Generic; using System.Configuration; using System.IO; using System.Text; using System.Net; namespace mshtml_automation_demo { /// <summary> /// Summary description for Form1. /// </summary> public class MainForm : System.Windows.Forms.Form { private AxSHDocVw.AxWebBrowser axWebBrowser1; private int Task = 1; // global /// <summary> /// Required designer variable. /// </summary> private System.ComponentModel.Container components = null; public MainForm() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // } /// <summary> /// Clean up any resources being used. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InitializeComponent() { System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(MainForm)); this.axWebBrowser1 = new AxSHDocVw.AxWebBrowser(); ((System.ComponentModel.ISupportInitialize)(this.axWebBrowser1)).BeginInit(); this.SuspendLayout(); // // axWebBrowser1 // this.axWebBrowser1.Dock = System.Windows.Forms.DockStyle.Fill; this.axWebBrowser1.Enabled = true; this.axWebBrowser1.Location = new System.Drawing.Point(0, 0); this.axWebBrowser1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axWebBrowser1.OcxState"))); this.axWebBrowser1.Size = new System.Drawing.Size(616, 382); this.axWebBrowser1.TabIndex = 0; this.axWebBrowser1.DocumentComplete += new AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEventHandler(this.axWebBrowser1_DocumentComplete); // // MainForm // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(616, 382); this.Controls.Add(this.axWebBrowser1); this.Name = "MainForm"; this.Text = "Microsoft WebBrowser Automation"; this.Load += new System.EventHandler(this.FrmMain_Load); ((System.ComponentModel.ISupportInitialize)(this.axWebBrowser1)).EndInit(); this.ResumeLayout(false); } #endregion /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.Run(new MainForm()); } private void FrmMain_Load(object sender, System.EventArgs e) { object loc = "https://www.vca.ssvv.nl/"; object null_obj_str = ""; System.Object null_obj = 0; this.axWebBrowser1.Navigate2(ref loc , ref null_obj, ref null_obj, ref null_obj_str, ref null_obj_str); } public static void OutputText(string VcaTypeExpDate) { string output = "C:\\Export\\Temp\\Logs\\"; //string output = "C:\\Export\\Raildocs\\Logs\\"; // string output = "F:\\Test_Cord\\Log\\"; StreamWriter Res; FileStream fileStream = null; DirectoryInfo logDirInfo = null; FileInfo logFileInfo; var ResFilePath = output; ResFilePath = ResFilePath + "Result.txt"; logFileInfo = new FileInfo(ResFilePath); logDirInfo = new DirectoryInfo(logFileInfo.DirectoryName); if (!logDirInfo.Exists) logDirInfo.Create(); if (!logFileInfo.Exists) { fileStream = logFileInfo.Create(); } else { fileStream = new FileStream(ResFilePath, FileMode.Append); } Res = new StreamWriter(fileStream); Res.WriteLine(VcaTypeExpDate); Res.Close(); } private void axWebBrowser1_DocumentComplete(object sender, AxSHDocVw.DWebBrowserEvents2_DocumentCompleteEvent e) { List<string> CVList = new List<string>(); string inputCV = ConfigurationManager.AppSettings["inputFile"]; string outputCV = ConfigurationManager.AppSettings["outputFile"]; string[] lines = File.ReadAllLines(inputCV, Encoding.UTF8); foreach (var item in lines) { string CVData = item.ToString().Replace('@', ' '); CVList.Add(CVData); } foreach(var item in CVList) { string[] cvData = item.Split(','); switch(Task) { case 1: HTMLDocument myDoc = new HTMLDocumentClass(); myDoc = (HTMLDocument) axWebBrowser1.Document; // a quick look at the google html source reveals: // <INPUT maxLength="256" size="55" name="q"> // HTMLInputElement otxtSearchBox = (HTMLInputElement)myDoc.all.item("ctl00_ContentPlaceHolder1_ctl00_txtAchternaam", 0); otxtSearchBox.value = cvData[0].ToString(); HTMLInputElement dtxtSearchBox = (HTMLInputElement)myDoc.all.item("ctl00_ContentPlaceHolder1_ctl00_txtGeboortedatum", 0); dtxtSearchBox.value = cvData[1].ToString(); // google html source for the I'm Feeling Lucky Button: // <INPUT type=submit value="I'm Feeling Lucky" name=btnI> // HTMLInputElement btnSearch = (HTMLInputElement)myDoc.all.item("ctl00_ContentPlaceHolder1_ctl00_cmdOpvragen", 0); btnSearch.click(); Task++; // write to text file break; case 2: // continuation of automated tasks... break; } } MessageBox.Show("Operation Completed...!"); } } }