Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

как скачать страницу   Найти похожие ветки 

 
Anonimus ©   (2004-12-06 20:08) [0]

Добрый вечер.
Как скачать веб-страницу и сохранить ее в файл?
Заранее спасибо.


 
Zahar   (2004-12-06 20:15) [1]

Импровизируй на тему:

Memo1.SaveToFile(IdHTTP1.Get(URL));


 
Anonimus ©   (2004-12-06 20:31) [2]

Ну так вот и вопрос : где взять IdHTTP1 , в смысле на какой закладке палитры ?


 
Zahar   (2004-12-06 20:39) [3]

См. IndyClients


 
Anonimus ©   (2004-12-06 20:44) [4]

А что, indy & http как-то связаны? Сорри за глупый вопрос...


 
Zahar   (2004-12-06 21:32) [5]

INDY (Internet Direct)
Тебе нужен HTTP клиент - IdHTTP.


 
Anonimus ©   (2004-12-07 10:24) [6]

Большое спасибо


 
Sirgey   (2004-12-11 22:58) [7]

Сории что вклиниваюсь, но у меня данные по запросу не приходят (попробуйте сами : http://www.globoxchange.com) причём именно от туда! Служба поддержки говорит что это не их проблема. Не знаете что делать?


 
PZ   (2004-12-12 19:12) [8]

Посмотрите мой ответ на Вопрос "Загрузка текста из интернета" 06.12.04.из раздела "Основная". Только вместо Outertext надо писать outerHTML


 
Rouse_ ©   (2004-12-14 09:31) [9]

Вот еще вариант через WinInet:

////////////////////////////////////////////////////////////////////////////////
//
//  Демо получения HTML кода страницы
//  Автор: Александр (Rouse_) Багель
//  © Fangorn Wizards Lab 1998 - 2003
//  19 января 2003

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
 Dialogs, ComCtrls, Wininet, StdCtrls;

const
 HTTP_PORT = 80;
 CRLF = #13#10;
 Header = "Content-Type: application/x-www-form-urlencoded" + CRLF;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Memo1: TMemo;
   Button2: TButton;
   Memo2: TMemo;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

function DelHttp(URL: String): String;
begin
 if Pos("http://", URL) > 0 then Delete(Url, 1, 7);
 Result := Copy(Url, 1, Pos("/", Url) - 1);
 if Result = "" then Result := URL + #0;
end;

function GetUrl(const URL: String): String;
var
 FSession, FConnect, FRequest: HINTERNET;
 FHost, FScript, SRequest: String;
 Ansi: PAnsiChar;
 Buff: array [0..1023] of Char;
 BytesRead: Cardinal;
 Res, Len: DWORD;
begin
 Result := "";
 // Небольшой парсинг
 // вытаскиваем имя хоста и параметры обращения к скрипту
 FHost := DelHttp(Url);
 FScript := Url;
 Delete(FScript, 1, Pos(FHost, FScript) + Length(FHost));
 //FScript := FHost + "/" +FScript;

 // Инициализируем WinInet
 FSession := InternetOpen("DMFR", INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
 if not Assigned(FSession) then Exit;
 try
   // Попытка соединения с сервером
   FConnect := InternetConnect(FSession, PChar(FHost), HTTP_PORT, nil,
                               "HTTP/1.0", INTERNET_SERVICE_HTTP, 0, 0);
   if not Assigned(FConnect) then Exit;
   try
     // Подготавливаем запрос страницы
     Ansi := "text/*";
     FRequest := HttpOpenRequest(FConnect, "GET", PChar(FScript), "HTTP/1.1",
                                 nil, @Ansi, INTERNET_FLAG_RELOAD, 0);
     if not Assigned(FConnect) then Exit;
     try
       // Добавляем заголовки
       if not (HttpAddRequestHeaders(FRequest, Header, Length(Header),
                                     HTTP_ADDREQ_FLAG_REPLACE or
                                     HTTP_ADDREQ_FLAG_ADD or
                                     HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA)) then Exit;

       // Проверяем запрос:
       Len := 0;
       Res := 0;
       SRequest := " ";
       HttpQueryInfo(FRequest, HTTP_QUERY_RAW_HEADERS_CRLF or
         HTTP_QUERY_FLAG_REQUEST_HEADERS, @SRequest[1], Len, Res);
       if Len > 0 then
       begin
         SetLength(SRequest, Len);
         HttpQueryInfo(FRequest, HTTP_QUERY_RAW_HEADERS_CRLF or
           HTTP_QUERY_FLAG_REQUEST_HEADERS, @SRequest[1], Len, Res);
       end;
       Form1.Memo2.Lines.Text := SRequest;
       // Отправляем запрос
       if not (HttpSendRequest(FRequest, nil, 0, nil, 0)) then Exit;
       // Получаем ответ
       FillChar(Buff, SizeOf(Buff), 0);
       repeat
         Result := Result + Buff;
         FillChar(Buff, SizeOf(Buff), 0);
         InternetReadFile(FRequest, @Buff, SizeOf(Buff), BytesRead);
       until BytesRead = 0;
     finally
       InternetCloseHandle(FRequest);
     end;
   finally
     InternetCloseHandle(FConnect);
   end;
 finally
   InternetCloseHandle(FSession);
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 Memo1.Text := GetUrl("http://forum.sources.ru/index.php?showforum=14");
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Memo1.Text := GetUrl("http://forum.sources.ru/");
end;

end.



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.051 c
14-1107237178
Rule
2005-02-01 08:52
2005.02.20
Borland ALM 2005 Ukraine


14-1106855341
Ihor Osov'yak
2005-01-27 22:49
2005.02.20
Ищется антиквариат - QuickReport 1.0c


1-1107370563
GuAV
2005-02-02 21:56
2005.02.20
Исключение при создании формы.


14-1106747016
Derevyanniy kak Rels
2005-01-26 16:43
2005.02.20
А вот как быть в таком случае ?


1-1107467967
rts111
2005-02-04 00:59
2005.02.20
Как сохранить tbitmap в jpg?