Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Truefish
1

использование WebBrowser для разбора страницы

17.03.2013, 21:43. Показов 1193. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
Возникла следующая задача:
Я захожу на страницу. Далее я программно заполняю форму и программно нажимаю кнопку. Страница обновляется.
Задача - разобрать полученную страницу что бы выцепить из нее таблицу.
//Загрузка страницы
C#
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
  this.webBrowser1.Navigate("http://post.ru/");
             while (this.webBrowser1.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
            }
//ввод данных в форму и нажатие кнопки
 this.webBrowser1.Document.GetElementById("trackIDs").SetAttribute("value", "EXXXXXXX");
 HtmlElementCollection elems =  this.webBrowser1.Document.GetElementsByTagName("INPUT");
           foreach (HtmlElement elem in elems)
            {     
                if (elem.GetAttribute("type").Equals("image"))
                {
                     elem.InvokeMember("click");
                }
//обработка таблицы
            waitTillLoad();
 
 HtmlElementCollection tables =  this.webBrowser1.Document.GetElementsByTagName("td");
               foreach (HtmlElement table in tables)
               {
                   string s = table.InnerText;
                   if (s == "Приём") 
                   {
                       this.richTextBox1.Text = s;
                   }
               }
Проблема в том, что сразу после нажатия кнопки таблица НЕ загружается.
Кто-нибудь может ответить на вопрос, как дождаться окончания загрузки страницы в webBrowser? Как отловить событие об обновлении страницы?

Добавлено через 12 часов 1 минуту
я делаю так :
C#
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
   private void waitTillLoad()
        {
            WebBrowserReadyState loadStatus;
            int waittime = 100000;
            int counter = 0;
            while (true)
            {
                loadStatus = webBrowser1.ReadyState;
                Application.DoEvents();
 
                if ((counter > waittime) || (loadStatus == WebBrowserReadyState.Uninitialized) || (loadStatus == WebBrowserReadyState.Loading) || (loadStatus == WebBrowserReadyState.Interactive))
                {
 
                    break;
 
                }
                counter++;
 
            }
 
            while (true)
            {
                loadStatus = webBrowser1.ReadyState;
                Application.DoEvents();
 
                if (loadStatus == WebBrowserReadyState.Complete)
                {
 
                    break;
                }
 
            }
        }
Добавлено через 22 часа 20 минут
C#
1
спасибо
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2013, 21:43
Ответы с готовыми решениями:

Использование куки webbrowser для HttpWebRequest
Провожу авторизацию на сайте в webbrowser и пытаюсь зайти на страницу private void...

Два WebBrowser для одной страницы
На форме имеется два элемента WebBrowser: WebBrowser1 и WebBrowser2 Загрузить любой url в...

Как сделать WebBrowser для одной страницы
Подскажите какие компоненты для этого нужны. Необходимо банально по заданному адресу выводить...

Изменение стилей страницы в WebBrowser, чтобы они применялись и для хостинга
Добрый день, обращаюсь за помощью. Возникла проблема, мне нужно удалить определенный элемент с...

1
17 / 11 / 3
Регистрация: 25.02.2013
Сообщений: 48
18.03.2013, 13:26 2
Если страница обновилась с данными формы в ASP.NET есть у страници такое свойство IsPostBack в методе PageLoad можно проверять если оно True то значит страница обновилась...
0
18.03.2013, 13:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.03.2013, 13:26
Помогаю со студенческими работами здесь

WebBrowser. Как получить Html код страницы открытой в "webBrowser" в правильной кодировке?
Пробую получить Html код страницы открытой в "webBrowser". public string GetHTMLCodPage() ...

Использование GZip для сжатия текста веб-страницы
Добрый вечер, форумчане! Прошу вашей помощи. Решения из похожих тем мне не помогли. Есть метод ...

Использование методов Servlet для обработки компонентов страницы
Доброго времени суток! :) На примере самого простого калькулятора (4 текстовых поля и кнопка)...

Программа, считывающая диапазон и выдающая «OK» в случае успешного разбора или «FAIL» в случае неуспешного разбора
Здравствуйте! Недавно начал изучать Visual C++ и пока не получается сделать программу, а очень...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru