Получение данных из интернест страницы.
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Как я могу получить содержимое страницы, находящейся на удаленном узле. Есть ли функции, позволяющие обрабатывать файлы не находящиеся на локальном компьютере, как стандартные функции для работы с файлами. Работа введется в среде разработки Borland C++.
Сплин,Остаёмся Зимовать писал(а):... даже странно,
Я не знаю что сказать...
Если удалённый компьютер является HTTP-сервером, то можно по протоколу HTTP получать данные. В Win32API есть соответствующие функции, есть системный компонент IHttpRequest. Можно по протоколу TCP через сетевые сокеты, но это уже более низкий уровень. А в Borland C++ Builder или Delphi есть готовые компоненты VCL для работы по протоколу HTTP или TCP.
Как вообще пользоваться протоколами. Я в этом ничего не понимаю. Посовеуйте, пожалуйста, какие нибуть книги.
Но это ОффТоп.
А по теме : Я беру данные по Http с обычной Вэб-страницы.
Но это ОффТоп.
А по теме : Я беру данные по Http с обычной Вэб-страницы.
Сплин,Остаёмся Зимовать писал(а):... даже странно,
Я не знаю что сказать...
О работе с сетевыми протоколами нужно читать в соответствующих книгах.
А вот небольшой пример на Visual C++, в котором данные с веб-страницы сохраняются в на диске в файл.
А вот небольшой пример на Visual C++, в котором данные с веб-страницы сохраняются в на диске в файл.
Код: Выделить всё
#include "stdafx.h"
#include <fstream.h>
#include <iostream.h>
#import "C:\WINNT\system32\winhttp.dll" no_namespace, raw_interfaces_only
struct _COINITIALIZE
{
_COINITIALIZE() {::CoInitialize(NULL);}
~_COINITIALIZE() {::CoUninitialize();}
};
int main(int argc, char* argv[])
{
struct _COINITIALIZE co_init;
IWinHttpRequestPtr pWHR(__uuidof(WinHttpRequest));
if ( SUCCEEDED( pWHR->Open( _bstr_t(L"GET"), _bstr_t(L"http://www.yandex.ru") ) ) )
{
if (SUCCEEDED(pWHR->Send()))
{
long lStatus = 0;
BSTR header = 0, body = 0, status = 0;
pWHR->get_Status(&lStatus);
pWHR->get_StatusText(&status);
pWHR->GetAllResponseHeaders(&header);
pWHR->get_ResponseText(&body);
// Вывод результата на консоль...
cout << lStatus << " " << (char*)_bstr_t(status) << endl;
cout << (char*)_bstr_t(header) << endl;
// Запись данных страницы в файл...
ofstream fout("yandex.html");
fout << (char*)_bstr_t(body);
fout.close();
::SysFreeString(body);
::SysFreeString(status);
::SysFreeString(header);
}
}
pWHR.Release();
return 0;
}
Например в каких? Посоветуйте.WinMain писал(а): О работе с сетевыми протоколами нужно читать в соответствующих книгах.
Сплин,Остаёмся Зимовать писал(а):... даже странно,
Я не знаю что сказать...
Да их много разных книг по TCP/IP, они примерно так и называются, что-то типа "Протоколы TCP/IP". Ты на Олимпийскмй съездий и спроси у тех, кто компьютерной литературой торгует, они тебе предложат. Или в "Библио-глобус" на Мясницкой, там тоже большой выбор литературы по программированию.
А если тебе на C++ Builder нужно к веб-серверу обращаться, то в нём должен быть уже готовый компонент, что-то типа THttpClient.
А если тебе на C++ Builder нужно к веб-серверу обращаться, то в нём должен быть уже готовый компонент, что-то типа THttpClient.