Форум: "Сети";
Текущий архив: 2005.07.11;
Скачать: [xml.tar.bz2];
ВнизПомогите Получить Погоду с сервера Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c