|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
с чего начать, работа с html страницей
хочу написать программу, которая считывает число со статичной страницы
локальный сервер, страница со статистикой соединений) и если число соединений превышает допустим 200, то нажимает кнопку подскажите какие компоненты использовать, как искать число на странице? там текст такой есть на страничке в таблице"количество соединений xxx" |
#2
|
||||
|
||||
1. Стягиваем страницу через IdHTTP.Get
2. Парсим с помощью pos, copy 3. Находим число 4. "Нажимаем на кнопку" - или делаем нужный запрос через idHTTP, если "кнопка" - объект на HTML-странице, либо ButtonN.Click, если кнопка на форме. Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |
#3
|
|||
|
|||
после лазания по форуму
нашел примерно похожее пытаюсь переделать под себя пока вот так, по идее должна вывести в лейбл данные после надписи текст(условно) повесил на кнопку срабатывание таймера но выводит 10 символов с начала документа Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdCookieManager, StdCtrls, 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://yandex.ru'); // page1 := Utf8ToAnsi(page1); // это для перевода из utf-8 в windows-1251 // ищим нужную позицию в тексте, name1:=copy(page1,Pos('текст">',page1)+length('текст">'),10); Label1.Caption := name1; // Form1.Caption := name1; end; end. Последний раз редактировалось harbor, 08.08.2010 в 07:28. |
#4
|
|||
|
|||
а нет, все заработало, исправил косячки
попробую дальше копать надо вытащить данные между > и < Последний раз редактировалось harbor, 08.08.2010 в 07:42. |
#5
|
|||
|
|||
не получается получить число 121 из html
Код:
Обслуживается соединений </td><td class="db" align="center">121</td></tr><tr><td class="db" width="30%"> таким кодом Код:
page1:=idhttp1.get('http://127.0.0.1:8080/statpage.html'); page1 := Utf8ToAnsi(page1); i:=ansipos('соединений', page1); delete(page1, 1, i); i:=ansipos('align', page1); delete(page1, 1, i); i:=ansipos('>', page1); delete(page1, 1, i); i:=ansipos('<', page1); s1:=copy(page1, 1, i-1); Label1.Caption := '('+s1+')'; страница в utf-8 то есть в заголовке стоит encoding="utf-8" не понимаю почему не работает проверял на других страничках в инете, все нормально берет все что между тегами а тут ничего не выдергивает вообще |
#6
|
||||
|
||||
Версия Делфи?
Оставайтесь хорошими людьми... VK id2634397, ds [at] phoenix [dot] dj |