![]() |
|
|
Регистрация | << Правила форума >> | 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. С его помощью пользователь заходит на сайт и видит торги - это все работает. В идеале, он должен выделить то число (цену), которое надо отслеживать (на странице несколько торгов, поэтому несколько цен). Прога должна запомнить какое место выделено, а потом при обновлении страницы проверить: не изменился ли этот фрагмент. Вот такая беда. Не забывайте делать резервные копии |