Парсер 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)));
            });
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы