![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите Получить Погоду с сервера [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;
В итоге получаешь страничку в текстовом виде, а уж дальше обрабатываешь текст.