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

Парсить html - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.68
Danvern
 Аватар для Danvern
40 / 39 / 3
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
05.07.2010, 10:28     Парсить html #1
Можете написать примерчик который бы про парсил одну страничку в интернете ну например вот эту http://www.cyberforum.ru и загнал бы весь исходный код этой странички в переменную.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2010, 10:28     Парсить html
Посмотрите здесь:

Парсить базу с англ. транскрипциями C++
создание html C++
C++ Парсер HTML на C++
C++ Тэги HTML в C++
C++ есть ли стандартные библиотеки, чтоб парсить xml
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Demihalf
Унылый школьник
 Аватар для Demihalf
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
05.07.2010, 10:49     Парсить html #2
Danvern, вы, наверное, имеете ввиду не "парсил", а запрашивал с сервера? Потому что "парсинг" по-русски - синтаксический анализ. А вам нужно загнать неизмененный исходный код HTML в переменную, правильно?
Danvern
 Аватар для Danvern
40 / 39 / 3
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
05.07.2010, 11:11  [ТС]     Парсить html #3
Да точно перепутал....
Demihalf
Унылый школьник
 Аватар для Demihalf
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
05.07.2010, 11:20     Парсить html #4
Насколько я знаю для этого нужно использовать сокеты. Могу ошибаться, не силен в этом вопросе...
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
05.07.2010, 11:21     Парсить html #5
Demihalf, какие сокеты? можно по подробнее?
Demihalf
Унылый школьник
 Аватар для Demihalf
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
05.07.2010, 11:26     Парсить html #6
В Форточках господина Гейтса есть заголовочный файл winsock2.h, в Линуксе тоже есть своя библиотека. С помощью сокетов пишутся клиент-серверные приложения. Подробнее рассказать не могу, так как не разбираюсь в этом вопросе. Google вам в помощь
nikkka
Мат в 32 хода
 Аватар для nikkka
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
05.07.2010, 11:42     Парсить html #7
Demihalf, cпс)))
uggway
219 / 133 / 9
Регистрация: 12.04.2010
Сообщений: 248
05.07.2010, 13:31     Парсить html #8
Если используешь C++Builder можно воспользоваться компонентом Indy: TIdHTTP.
C++
1
2
3
4
5
    TStringStream *response;
    response=new TStringStream();
    TStringList *tsl=new TStringList();
    http->Get("http://www.cyberforum.ru",response);
    tsl->Text=response->DataString;
здесь http объект TIdHTTP...
в tsl будет код странички
Danvern
 Аватар для Danvern
40 / 39 / 3
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
05.07.2010, 13:40  [ТС]     Парсить html #9
а можно точно такое же только на чистом WinApi...?
uggway
219 / 133 / 9
Регистрация: 12.04.2010
Сообщений: 248
06.07.2010, 10:22     Парсить html #10
Можно...
С использованием wininet api.
Необходимо подключить
#include<wininet.h>
И добавить к линковщику библиотеку wininet.lib
Загрузка странички выполняется в буфер примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
     HINTERNET session;   
     HINTERNET url;
     char buf[1024];      
     BOOL res;
     DWORD br;
            
     session = InternetOpen(L"Explorer", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);                
 
     url = InternetOpenUrl( session, L"http://www.cyberforum.ru", NULL, 0, 0, 0);               
 
     do{
        res = InternetReadFile( url, (LPSTR)buf, (DWORD)1024, &br); 
        //загружаем по 1024 байта и что-то тут с ними делаем...
     }
     while(br);
 
     InternetCloseHandle(url);
     InternetCloseHandle(session);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2010, 20:02     Парсить html
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 320
Регистрация: 30.03.2009
Сообщений: 14,125
Записей в блоге: 26
06.07.2010, 20:02     Парсить html #11
Вот тут всё подробно описано. Прямо под оглавлением ссылка на исходник (пишу на всякий случай, потому что многие почему-то её не замечают)
http://www.rsdn.ru/article/inet/wininet.xml
Yandex
Объявления
06.07.2010, 20:02     Парсить html
Ответ Создать тему
Опции темы

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