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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.68
Danvern
40 / 39 / 3
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
#1

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

05.07.2010, 10:28. Просмотров 4718. Ответов 10
Метки нет (Все метки)

Можете написать примерчик который бы про парсил одну страничку в интернете ну например вот эту http://www.cyberforum.ru и загнал бы весь исходный код этой странички в переменную.
1
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2010, 10:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Парсить html (C++):

Парсить URL - C++
Мне нужно получить текст после последнего слэша в URL. Никак не могу сделать. // Пример URL -...

Парсить базу с англ. транскрипциями - C++
Пишу курсовую, можете подсказать какой-либо файл, в котором содержаться транскрипции английских слов и сами слова. Транскрипции должны быть...

как парсить вот эти теги? - C++
Использую PUGIXML для парса xml файлов, и вот имеется такой вот файлик в котором есть <objectgroup name="523"> <object id="104"...

есть ли стандартные библиотеки, чтоб парсить xml - C++
Хочу написать конвертер одного XML доукмента на С++ под Линуксом, подскажите библиотеку..

Загрузка моделей из автокада и отображение на форме: Чем парсить модели? - C++
Имеется введенное в эксплуатацию приложение написанное на C++ с использованием Qt. Основная целевая система - Windows. Но под линуксом...

Перевести обычный файл в HTML, добавив соответствующие HTML-теги - C++
Задание состоит в том, что имеется файл текстовый, его нужно перевести в HTML, т.е. добавить тэги <html><body> к началу файла, заключить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Demihalf
Унылый школьник
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
05.07.2010, 10:49 #2
Danvern, вы, наверное, имеете ввиду не "парсил", а запрашивал с сервера? Потому что "парсинг" по-русски - синтаксический анализ. А вам нужно загнать неизмененный исходный код HTML в переменную, правильно?
1
Danvern
40 / 39 / 3
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
05.07.2010, 11:11  [ТС] #3
Да точно перепутал....
0
Demihalf
Унылый школьник
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
05.07.2010, 11:20 #4
Насколько я знаю для этого нужно использовать сокеты. Могу ошибаться, не силен в этом вопросе...
0
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
05.07.2010, 11:21 #5
Demihalf, какие сокеты? можно по подробнее?
0
Demihalf
Унылый школьник
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
05.07.2010, 11:26 #6
В Форточках господина Гейтса есть заголовочный файл winsock2.h, в Линуксе тоже есть своя библиотека. С помощью сокетов пишутся клиент-серверные приложения. Подробнее рассказать не могу, так как не разбираюсь в этом вопросе. Google вам в помощь
0
nikkka
Мат в 32 хода
235 / 170 / 8
Регистрация: 10.09.2009
Сообщений: 1,096
05.07.2010, 11:42 #7
Demihalf, cпс)))
0
uggway
219 / 133 / 9
Регистрация: 12.04.2010
Сообщений: 248
05.07.2010, 13:31 #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 будет код странички
0
Danvern
40 / 39 / 3
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
05.07.2010, 13:40  [ТС] #9
а можно точно такое же только на чистом WinApi...?
0
uggway
219 / 133 / 9
Регистрация: 12.04.2010
Сообщений: 248
06.07.2010, 10:22 #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);
1
Evg
Эксперт CАвтор FAQ
17810 / 6016 / 388
Регистрация: 30.03.2009
Сообщений: 16,531
Записей в блоге: 26
06.07.2010, 20:02 #11
Вот тут всё подробно описано. Прямо под оглавлением ссылка на исходник (пишу на всякий случай, потому что многие почему-то её не замечают)
http://www.rsdn.ru/article/inet/wininet.xml
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.07.2010, 20:02
Привет! Вот еще темы с ответами:

Правила вложенности тегов html (html разметка на С++) - C++
Смысл программы: создание html разметки (добавление, удаление тегов) Подскажите, как и где реализовать правила вложенности тегов?...

Как парсить и как записать в json? - C++
Привет, никак не могу разобраться как подключить и работать с json в с++ какие библиотеки нужно подключить (желательно ссылку на них) и...

Парсить HTML - PascalABC.NET
Здравствуйте! Есть HTML страница (например: http://www.cyberforum.ru/freedom.html). Как ее пропарсить?

Как парсить html? - Программирование Android
Привет! Я начинающий девелопер, вот я дошел до такого что мне нужно выдернуть информацию с HTML страницы. Узнал что эта штука называется...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
06.07.2010, 20:02
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru