Парсер HTML документа - C#
Формулировка задачи:
Доброго суток!
Есть необходимость парсить HTML для этих целей хотел использовать System.Net.WebRequest (можно указать настройки прокси). Но столкнулся с проблемой: на странице есть java script, формирующий основной контент. Естественно он не выполняется и в HTML не попадает нужная информация.
Пробовал через webBrowser1.Navigate (при этом прокси прописано в настройках систему), но прокся не пускает запрос просит авторизацию.
Прошу совета как лучше получить код HTML, в котором часть контента формируется скриптом.
Решение задачи: «Парсер HTML документа»
textual
Листинг программы
using System; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApplication1 { public partial class Form1 : Form { private WebBrowser client; private delegate void Del(string text); public Form1() { InitializeComponent(); } private void buttonStart_Click(object sender, EventArgs e) { client = new WebBrowser(); client.DocumentCompleted += Client_DocumentCompleted; client.ScriptErrorsSuppressed = true; client.Navigate("http://www.lexmark.com/ru_RU/common/mce-search.shtml?text=" + textBoxText.Text); } private async void Client_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { await Wait(); } private Task Wait() { return Task.Run(async () => { while ((HtmlElement)client.Invoke(new Func<HtmlElement>(() => client.Document.GetElementById("results-body"))) == null) await Task.Delay(100); textBoxHtml.Invoke(new Del((s) => textBoxHtml.Text = s), (string)client.Invoke(new Func<string>(() => client.Document.GetElementById("results-body").OuterHtml))); }); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д