Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.08.2010, 17:02
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию с чего начать, работа с html страницей

хочу написать программу, которая считывает число со статичной страницы
локальный сервер, страница со статистикой соединений) и если число соединений превышает допустим 200, то нажимает кнопку

подскажите какие компоненты использовать, как искать число на странице? там текст такой есть на страничке в таблице"количество соединений xxx"
Ответить с цитированием
  #2  
Старый 07.08.2010, 18:54
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

1. Стягиваем страницу через IdHTTP.Get
2. Парсим с помощью pos, copy
3. Находим число
4. "Нажимаем на кнопку" - или делаем нужный запрос через idHTTP, если "кнопка" - объект на HTML-странице, либо ButtonN.Click, если кнопка на форме.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #3  
Старый 08.08.2010, 07:07
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

после лазания по форуму
нашел примерно похожее
пытаюсь переделать под себя
пока вот так, по идее должна вывести в лейбл данные после надписи текст(условно)
повесил на кнопку срабатывание таймера
но выводит 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  
Старый 08.08.2010, 07:32
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

а нет, все заработало, исправил косячки
попробую дальше копать
надо вытащить данные между > и <

Последний раз редактировалось harbor, 08.08.2010 в 07:42.
Ответить с цитированием
  #5  
Старый 08.08.2010, 17:14
harbor harbor вне форума
Новичок
 
Регистрация: 15.01.2010
Сообщения: 83
Репутация: 10
По умолчанию

не получается получить число 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  
Старый 08.08.2010, 18:13
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Версия Делфи?
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:54.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter