Наверное, самый простой способ загрузить сайт для парсинга это компонент TIdHTTP и его метод Get.
Если открыть официальную документацию компонентов Indy, то можно увидеть следующее описание метода Get, компонента TidHTTP
1 2 3 |
function Get( AURL: string ): string; overload; |
И ещё одна его перегруженная версия, которая грузит сайт в поток (Tstream)
1 2 3 4 |
procedure Get( AURL: string; AResponseContent: TIdStream ); overload; |
Загружаем НTML код страницы в MEMO
1 2 3 4 5 6 |
procedure TForm2.FormCreate(Sender: TObject); begin IdHTTP1.HandleRedirects:=true;// чтобы не было ошибки при перенаправлении memo1.Lines.Clear; memo1.Lines.Add(IdHTTP1.Get('http://www.cyberforum.ru/delphi-beginners/thread1223166.html')); end; |
Результат…
Далее можно как-либо её парсить с использованием, например, регулярных выражений.
Получаем доп. информацию о странице…
Также есть метод, который загружает только head… В данном случае в head загружается не привычный header html страницы, а всякая дополнительная информация о странице, как-то кодировка, длина всех символов страницы, имя сервера и так далее… Полный список всех параметров можно получить набрав в IDE Delphi
1 |
idHTTP1.Response. |
и дождаться выпадения списка возможных вариантов свойств и методов, ну а далее выбрать то, что нужно…
Получим, например кодировку страницы
1 2 3 4 5 6 |
procedure TForm2.FormCreate(Sender: TObject); begin IdHTTP1.HandleRedirects:=true;// чтобы не было ошибки при перенаправлении (idHTTP1.Head('http://www.cyberforum.ru/delphi-beginners/thread1223166.html')); memo1.Lines.Add(idhttp1.Response.CharSet); end; |
На данном этапе все, в дальнейших постах попробую распарсить страницу немного по-другому, с помощью библиотеки MSHTML;