OGR |
опубликован 30-10-2001 12:31 MSK
Мастера, подскажите пожайлуста как работать с фреймами, а то информации очень мало. Я вот написал небольшой парсер, без фреймов работает замечательно, а с фреймами никак не получается. Если не сложно, измените приведенный ниже кусок кода, чтобы можно было работать с фреймами или объясните как это сделать. Я постарался прокоментировать, но получилось достаточно криво. Спасибо.procedure TForm1.Button1Click(Sender: TObject); var iDoc:IHtmlDocument2; i:integer; ov:OleVariant; iColl,iColl2:IHTMLElementCollection; iInputElement:IHTMLInputElement; URL:string; begin //Gruzim stranicu bez freimov WebBrowser1.Navigate(URL,ov,ov,ov,ov); //Zhdem zagrizki stranici while not WebBrowser1.Busy do Application.ProcessMessages; while WebBrowser1.Busy do Application.ProcessMessages; //Vse strnici otkrivautsa v tekushem okne ppDisp:=WebBrowser.DefaultInterface; //Nachalo poiska iDoc:=WebBrowser1.Document as IHTMLDocument2; //Poisk nazvaniya statyi iColl:=iDoc.All.tags('INPUT') as IHTMLElementCollection; for i:=0 to iColl.length-1 do with (iColl.item(i,varEmpty) as IHTMLInputElement) do if name='art_name' then begin (iColl.item(i,varEmpty) as IHTMLElement).scrollIntoView(varEmpty); Memo1.Lines.Text:=value;//Chitaem nazvanie statyi end else //Ishem textariu s anonsom iColl2:=iDoc.All.Tags('TEXTAREA') as IHTMLElementCollection; for i:=0 to iColl2.length-1 do with (iColl2.item(i,varEmpty) as IHTMLTextAreaElement) do //Nahodim i pishem tuda iz Memo1 if name='prolog' then value:=Memo1.Lines.Text; //Ishem select element 'Pokazivat v anonsah' iColl2:=iDoc.All.Tags('Select') as IHTMLElementCollection; for i:=0 to iColl2.length-1 do with (iColl2.item(i,varEmpty) as IHTMLSelectElement) do //Stavim ne pokazivat if name='is_announce' then value:='N'; end;
|