Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите Получить Погоду с сервера [D7]


jcrush ©   (2005-04-07 03:21:00) 

залить страницу через прокси мне удается но дальше отпарсить - нет, если текстовик то вроде легко, но формат HTML  не выходит :((

допустим нужно:
_ http://pogoda.su/Russia_Aksa.html

выдрать строки:

Дата: 07.04.2005
Восход: 07:49   Заход: 21:10
температура ночью: -10°C

Заранее сенкс примером
температура днем: 2°C


jcrush   (2005-04-11 04:27:00) [1]

Пасибо за последний пример, то что надо, а про Twebbrowser я  и так - самый простой вариант..


easy   (2005-04-07 11:36:00) [2]

uses
 MSHTML, Activex, ComObj;

procedure TForm1.Button1Click(Sender: TObject);
var
 vHttp: OleVariant;
 vContext: OleVariant;
 vDocument: IHTMLDocument2;
 vHtml: string;
 h2: IHTMLElementCollection;
 data: IHTMLElement;
 i: integer;
begin
 Memo1.Clear;
 vHttp := CreateOleObject('Microsoft.XMLHTTP'); { Requires IE5 }
 try
   vHttp.open('GET', ' http://pogoda.su/Russia_Aksa.html', False, EmptyParam, EmptyParam);
   vHttp.send('');
   vHtml := vHttp.responseText;
   vDocument := CoHTMLDocument.Create as IHTMLDocument2;
   vContext := VarArrayCreate([0, 0], varVariant);
   vContext[0] := vHtml;
   vDocument.Write(PSafeArray(TVarData(vContext).VArray));
   vDocument.Close;
   if Supports(vDocument.all.tags('H2'), IHTMLElementCollection, h2) then
     if Supports(h2.item(0, 0), IHTMLElement, data) then begin
       i := data.sourceIndex;
       Memo1.Lines.Add(data.innerText);
       Memo1.Lines.Add((vDocument.all.item(i + 1, 0) as IHTMLElement).innerText);
       Memo1.Lines.Add((vDocument.all.item(i + 3, 0) as IHTMLElement).innerText);
     end;
 except
   Memo1.Text := 'Error.';
 end;
end;


Vlad7777   (2005-04-07 10:43:00) [3]

я использую IdHTTP из Indy  получаю страничку в HTML ,  выкусываю всю лишнюю инфу , рекламу , баннеры   ,  если же нужно оставить только текст то тогда нужно повыкусывать теги обрамления нужной информации , в инете можно найти соответствующие модули для преобразования HTML в текст, или написать все самому.


Zyb   (2005-04-07 08:31:00) [4]

Берешь компоненту Twebbrowser получаешь страничку в событии WebBrowser1DocumentComplete можно применить следующее

var
 Document: IHTMLDOCUMENT2;
 str : string;
begin
 Document:=IHTMLDocument2(WebBrowser1.Document);
 str:=Document.body.innerText;
end;

В итоге получаешь страничку в текстовом виде, а уж дальше обрабатываешь текст.


Наверх

Титульная страница Поиск, карта сайта Написать письмо