Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение html кода страницы в TWebBrowser 
:(
    Опции темы
ShamanVoodoo
Дата 17.10.2007, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: нет
Всего: -3



собственно вот такой вопрос... или хотя бы обьясните как получить код  любой страницы, рылся в старых материалах форума, нашел посты Математика, но он использовал TClientSocket, такого элемента в Делфи 7 я к сожалению не нашел ,подскажите что делать?
PM MAIL ICQ   Вверх
volvo877
Дата 17.10.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 1
Всего: 116



PM MAIL   Вверх
ppc
Дата 17.10.2007, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 5.6.2007

Репутация: нет
Всего: нет



самое простое через инди

idhttp1.get('http://site.com');
PM MAIL   Вверх
ShamanVoodoo
Дата 17.10.2007, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: нет
Всего: -3



спс) щас буду пробовать
PM MAIL ICQ   Вверх
ShamanVoodoo
Дата 17.10.2007, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: нет
Всего: -3



volvo877
Обратите внимание: Вам понадобится импортировать библиотеку MSHTML и добавить MSHTML_TLB как ActiveX, в секцию Uses. 

поясни пожалуйста откуда и как импортировать эту бибилотеку?
PM MAIL ICQ   Вверх
volvo877
Дата 17.10.2007, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 1
Всего: 116



Попробуй просто
Код

Uses ..., ActiveX, MsHtml; { <--- добавить MsHtml }


У меня работает...
PM MAIL   Вверх
ShamanVoodoo
Дата 17.10.2007, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: нет
Всего: -3



Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,ActiveX, MsHtml, StdCtrls, OleCtrls, SHDocVw;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
 var
  HTMLDocument: IHTMLDocument2;
  PersistFile: IPersistFile;

begin
WebBrowser1.Navigate('http://www.ya.ru');
  HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
  PersistFile := HTMLDocument as IPersistFile; 
  PersistFile.Save(StringToOleStr('test.htm'), True);
  while HTMLDocument.readyState <> 'complete' do
    Application.ProcessMessages;
end;

end.


вот такой код у меня,но программа не работает -  выдает ошибку -access violation in ...
на PersistFile.Save(StringToOleStr('test.htm'),True); почему-то ругается

Это сообщение отредактировал(а) ShamanVoodoo - 17.10.2007, 22:25
PM MAIL ICQ   Вверх
volvo877
Дата 17.10.2007, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 1
Всего: 116



Сорри, но ты должен сначала дождаться, пока страничка полностью загрузится, и только потом пытаться ее сохранить. Ты же этого не делаешь... Вот так попробуй:

Код

procedure TForm1.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.ya.ru');
end;


procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  HTMLDocument: IHTMLDocument2;
  PersistFile: IPersistFile;
begin
  HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
  PersistFile := HTMLDocument as IPersistFile;
  PersistFile.Save(StringToOleStr('test.htm'), True);

end;

PM MAIL   Вверх
ShamanVoodoo
Дата 17.10.2007, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 17.10.2007
Где: Сергиев Посад

Репутация: нет
Всего: -3



ясно теперь работает,спасибо) а не подскажешь какую-нибудь библиотеку с фунциями для парсинга html?
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.