![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Может кто подскажет как отследить изменения на странице с помощью TWebBrowser (D7).
Сайт торгов и надо отслеживать изменение цены лота с интервалом примерно 5-10 мин. Попытки применять методы TWebBrowser в моем исполнении дают жалкий эффект (т.е. никакого). Чайник я, что касается Web. |
|
#2
|
|||
|
|||
|
Я делал парсинг через Indy.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, IdCookieManager, ScktComp, ExtCtrls;
type
TForm1 = class(TForm)
IdHTTP1: TIdHTTP;
Label1: TLabel;
Timer1: TTimer;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
http:TidHttp;
CooM:TidCookieManager;
data:TStringList;
page1, name1:String;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
data :=TStringList.Create;
http:=TIdHTTP.Create(Self);
http.AllowCookies:=true;
CooM:=TidCookieManager.Create(http);
http.CookieManager:=CooM;
http.HandleRedirects:=true;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
data.Free;
Coom.Free;
http.Free;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
name1:='';
page1 := http.Get('http://auction.ru/page.html');
// page1 := Utf8ToAnsi(page1); // это для перевода из utf-8 в windows-1251
// ищим нужную позицию в тексте, копируем цену и выводим на форму
name1:=copy(page1,Pos('<span class="text3">',page1)+length('<span class="text3">'),4);
Label1.Caption := name1;
Form1.Caption := name1;
end;
end. |
|
#3
|
|||
|
|||
|
Спасибо за оперативный ответ.
Проблема именно в поиске нужного куска текста. Я не случайно упомянул в первом посте TWebBrowser. С его помощью пользователь заходит на сайт и видит торги - это все работает. В идеале, он должен выделить то число (цену), которое надо отслеживать (на странице несколько торгов, поэтому несколько цен). Прога должна запомнить какое место выделено, а потом при обновлении страницы проверить: не изменился ли этот фрагмент. Вот такая беда. |