Форум программистов, компьютерный форум CyberForum.ru

Парсинг html - C++

Восстановить пароль Регистрация
 
Adept22
0 / 0 / 0
Регистрация: 16.05.2013
Сообщений: 23
28.09.2013, 23:29     Парсинг html #1
Здравствуйте, уважаемые форумчане! Я мало знаю на тему парсинга и вот мне нужно вытащить информацию с сайта http://www.igumo.ru/. Слева после меню есть 2 ссылки "Войти" и "Зарегистрироваться", так вот, когда проходишь авторизацию вместо ссылки "Войти" пишется твое имя и фамилия, так вот мне нужно брать имя и фамилию и вставлять в текстовое поле в форме. Как это можно реализовать? Очень надеюсь на вашу помощь!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2013, 23:29     Парсинг html
Посмотрите здесь:

C++ Парсинг HTML
C++ Парсинг списка
Парсинг C++
C++ Парсинг
C++ Правила вложенности тегов html (html разметка на С++)
C++ Перевести обычный файл в HTML, добавив соответствующие HTML-теги
C++ Парсинг html - Вывод всех ссылок с их текстовыми полями
C++ Парсинг

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
monolit
179 / 179 / 21
Регистрация: 24.03.2011
Сообщений: 641
Завершенные тесты: 1
29.09.2013, 01:11     Парсинг html #2
Эт явно не на С++ писать тебе надо.
gazlan
2861 / 1809 / 272
Регистрация: 27.08.2010
Сообщений: 4,893
Записей в блоге: 1
29.09.2013, 02:24     Парсинг html #3
IHTMLFormElement interface

Добавлено через 13 минут
Вот здесь пример: How to perform form submit?

Добавлено через 47 минут
До кучи.

Два примера работы с веб-формами из старого проекта:

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
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
void CMail_checkerDlg::OnBnClickedBtnEnglish()
{
   IHTMLDocument2*      pDoc = NULL;
 
   if (SUCCEEDED(m_Browser.GetDocument()->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&pDoc)) && pDoc)
   {
      IHTMLElementCollection*    pAll = NULL;
 
      if (SUCCEEDED(pDoc->get_all(&pAll)) && pAll)
      {
         IHTMLElementCollection*    pForms = NULL;
 
         // Get the number of forms on a page
         if (SUCCEEDED(pDoc->get_forms(&pForms)) && pForms)
         {
            long   iCnt = 0;
 
            if (SUCCEEDED(pForms->get_length(&iCnt)) && iCnt)
            {
               // Get a form by number
               IDispatch*    pLang = NULL;     
 
               CComVariant    vName(LANGUAGE_FORM_NAME);
               CComVariant    vIdx((long)0,VT_I4);
 
               if (SUCCEEDED(pForms->item(vName,vIdx,&pLang)) && pLang)
               {
                  IHTMLFormElement*     pTheForm = NULL;
 
                  if (SUCCEEDED(pLang->QueryInterface(IID_IHTMLFormElement,(void**)&pTheForm)) && pTheForm)
                  {  
                     IDispatch*     pValue = NULL;
 
                     CComVariant    vName(FORM_LANGUAGE_SELECTOR);
                     CComVariant    vIdx((long)0,VT_I4);
 
                     if (SUCCEEDED(pTheForm->item(vName,vIdx,&pValue)) && pValue)
                     {
                        IHTMLSelectElement*     pSelect = NULL;
 
                        if (SUCCEEDED(pValue->QueryInterface(IID_IHTMLSelectElement,(void**)&pSelect)) && pSelect)
                        {  
                           CComBSTR    bsValue(FORM_LANGUAGE_ENGLISH);
 
                           if (SUCCEEDED(pSelect->put_value(bsValue)))
                           {
                              pTheForm->submit();
                           }
                           
                           pSelect->Release();
                           pSelect = NULL;
                        }
                        
                        pValue->Release();
                        pValue = NULL;
                     }
 
                     pTheForm->Release();
                     pTheForm = NULL;
                  }
                  
                  pLang->Release();
                  pLang = NULL;
               }
            }
 
            pForms->Release();
            pForms = NULL;
         }
 
         pAll->Release();
         pAll = NULL;
      }
 
      pDoc->Release();
      pDoc = NULL;
   }
}
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
34
35
36
37
38
39
40
41
42
43
44
void CMail_checkerDlg::PushLogin()
{
   CString        sLogin = "";
 
   GetDlgItemText(IDC_EDT_LOGIN,sLogin);
 
   IHTMLDocument2*      pDoc = NULL;
 
   if (SUCCEEDED(m_Browser.GetDocument()->QueryInterface(IID_IHTMLDocument2,(LPVOID*)&pDoc)) && pDoc)
   {
      IHTMLElementCollection*    pAll = NULL;
 
      if (SUCCEEDED(pDoc->get_all(&pAll)) && pAll)
      {
         CComVariant    vLogin = FORM_FIELD_LOGIN; 
         CComVariant    vIndex = 0;
 
         IDispatch*     pLogin = NULL;
 
         if (SUCCEEDED(pAll->item(vLogin,vIndex,&pLogin)) && pLogin)
         {
            IHTMLInputElement*      pInput = NULL;
 
            if (SUCCEEDED(pLogin->QueryInterface(IID_IHTMLInputElement,(LPVOID*)&pInput)) && pInput)
            {  
               CComBSTR    bsUserID(sLogin);
 
               pInput->put_value(bsUserID);
               pInput->Release();
               pInput = NULL;
            }
         
            pLogin->Release();
            pLogin = NULL;
         }
 
         pAll->Release();
         pAll = NULL;
      }
 
      pDoc->Release();
      pDoc = NULL;
   }
}
Yandex
Объявления
29.09.2013, 02:24     Парсинг html
Ответ Создать тему
Опции темы

Текущее время: 12:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru