Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

Помогите Получить Погоду с сервера   Найти похожие ветки 

 
jcrush   (2005-04-07 03:21) [0]

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

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

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

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

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


 
Zyb ©   (2005-04-07 08:31) [1]

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

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

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


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

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


 
easy ©   (2005-04-07 11:36) [3]

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;


 
jcrush   (2005-04-11 04:27) [4]

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



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.053 c
14-1117995289
Cerberus
2005-06-05 22:14
2005.07.11
У кого есть фотка салюта.


1-1118728171
stin10
2005-06-14 09:49
2005.07.11
ограничение памяти


14-1118726011
Ega23
2005-06-14 09:13
2005.07.11
С днём рождения! 14 июня


14-1118216502
Bronco
2005-06-08 11:41
2005.07.11
И снова об авто. Очередной шедевр отечественного автопрома


8-1111215430
vaa20003
2005-03-19 09:57
2005.07.11
OLE