|
21 / 20 / 3
Регистрация: 21.06.2010
Сообщений: 80
|
|
Как открыть HTML-страницу?14.12.2010, 02:37. Показов 3717. Ответов 6
Метки нет (Все метки)
Друзья, такой вопрос - как открыть HTML-страничку в своей программе и куда её при этом можно сохранить в памяти?
Имеется в виду: как получить текст HTML-страницы? Не исходник, а уже сформированный сервером код? Выводить никуда на экран не надо, код мне нужен для последующей самостоятельной обработки. Хочу открывать нужную страницу и вытаскивать из неё нужную мне информацию. И куда это дело сохранить можно - в массив строк (ну а куда же ещё, наверное)? Как вообще такие вещи делаются? Если у кого есть опыт - поделитесь, пожалуйста
0
|
|
| 14.12.2010, 02:37 | |
|
Ответы с готовыми решениями:
6
Как открыть локальную HTML страницу в WebBrowser? Как в Spring MVC открыть статическую html страницу Как открыть .html страницу для обработки, не скачивая её |
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 14.12.2010, 06:27 | |
|
Ну если на WinAPI - изучай сокеты
1
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 14.12.2010, 06:47 | |
|
Ты форумного индексирующего бота что ли делаешь? С динамических сайтов никто тебе исходник и не передаст, а на статических исходник и есть готовый код. Так что, в любом случае тебе нужен html текст со всеми тегами. Подключай свой сокет на восьмидесятый порт сервака и качай ответ. Куда поместить - решай сам, может быть в массив строк, а может символов (в одну гигантскую строку с символами '\n' в любом месте), или даже в массив сырых байт.
1
|
|
|
21 / 20 / 3
Регистрация: 21.06.2010
Сообщений: 80
|
|||||||||||||||||||||
| 15.12.2010, 02:17 [ТС] | |||||||||||||||||||||
|
Спасибо! Буду мучать Гугл сокетами
![]() Добавлено через 1 час 57 минут А может кто подсказать, как откомпилировать простейшее winsock-приложение в DevC++? Нужно ли создавать проект? Какие параметры и библиотеки подключать и как? Нашёл немало примеров в интернете - ни один не компилируется ![]() Добавлено через 30 минут А, понял: в св-вах проекта компоновщику надо было прописать "-lws2_32" ![]() Добавлено через 2 часа 22 минуты Друзья, нашёл на просторах интернета вот такой замечательный пример:
(для pBuf пробовал оба варианта, включая закомментированный - результат одинаков) Добавлено через 1 час 0 минут Так, кажись, я нашёл готовое решение ^_^ Добавлено через 51 минуту О! Работает! ^_^
Добавил приём кусков буфера, пока не кончатся - почему-то читает html-документ не до конца, или я что-то не понимаю ![]()
0
|
|||||||||||||||||||||
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 15.12.2010, 05:16 | |
|
TrenAr, Ну может получиться, что ты запрашиваешь очередные данные, а они просто не успели придти, и ты берешь и выходишь. Для таких вещей используется таймаут, если за время таймаута не пришло ни одного пакета, то значит прием закончен.
0
|
|
|
21 / 20 / 3
Регистрация: 21.06.2010
Сообщений: 80
|
|
| 15.12.2010, 20:15 [ТС] | |
|
Что за таймаут? Просто сделать цикл с паузой и каждые N-секунд той же командой recv проверять не пришло ли что ещё?
0
|
|
|
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
|
|
| 15.12.2010, 20:37 | |
|
TrenAr, лучше таймер запустить, но на худой конец цикл сделай, главное не забудь в цикле sleep поставить, иначе твоя прога сожрет весь проц. )
Добавлено через 7 минут TrenAr, тут еще важно какие сокеты ты используешь, синхронные или асинхронные. если синхронные то похорошему нужно делать на сокет два дополнительных потока. один для приема, другой для передачи. Тот который для приема, принимает все что пришлют и формирует событие для главного потока. В главном потоке таймер сохраняет время когда последний пакет был получен и по истечению определенного времени говорит пользователю что все загружено. Учитывай. что вызвав recv блокирует поток пока не получит нужного числа байт.....если я правильно помню... если сокет асинхронный, то просто ждешь событие приема пакетов и так же по таймеру отсчитываешь таймаут.
1
|
|
| 15.12.2010, 20:37 | |
|
Помогаю со студенческими работами здесь
7
Открыть HTML-страницу в браузере Открыть HTML-страницу нажатием на кнопку Открыть html страницу в папке с прогой.
При вызове справки открыть html-страницу в браузере Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|