delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks
如何读取网页源码然后生成html文件? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiBase/html/delphi_20061219212425113.html
我在网上找了好久没有找到,不知道用哪个函数可以实现?希望给段代码,谢谢了,在线等.

uses   ActiveX,   ComObj;  
  //...  
   
  function   GetHtml(const   WebBrowser:TWebBrowser):   string;//此函数原作者卢小海  
  const  
        BufSize   =   $10000;  
  var  
        Size:   Int64;  
        Stream:   IStream;  
        hHTMLText:   HGLOBAL;  
        psi:   IPersistStreamInit;  
  begin  
        if   not   Assigned(WebBrowser.Document)   then   Exit;  
        OleCheck(WebBrowser.Document.QueryInterface(IPersistStreamInit,   psi));  
        try  
              hHTMLText   :=   GlobalAlloc(GPTR,   BufSize);  
              if   0   =   hHTMLText   then   RaiseLastWin32Error;  
              OleCheck(CreateStreamOnHGlobal(hHTMLText,True,   Stream));  
              try  
                    OleCheck(psi.Save(Stream,   False));  
                    Size   :=   StrLen(PChar(hHTMLText));  
                    SetLength(Result,   Size);  
                    CopyMemory(PChar(Result),   Pointer(hHTMLText),Size);  
              finally  
                    Stream   :=   nil;  
              end;  
        finally  
              psi   :=   nil;  
        end;  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
      HtmF:Textfile;  
  begin  
      memo1.Text:=gethtml(WebBrowser1);  
      assignfile(HtmF,'c:\result.htm');  
      rewrite(HtmF);  
      writeln(HtmF,memo1.text);  
      closefile(HtmF);  
  end;  
   
  procedure   TForm1.Button2Click(Sender:   TObject);  
  begin  
      webbrowser1.Navigate('http://www.google.com');  
  end;

------------引自   大富翁。    
   
  借助   webbrower   控件。  
   
  webbrower.nagivate('your   url')  
   
   
  8、直接从TWebBrowser得到网页源码及Html  
   
    下面先介绍一种极其简单的得到TWebBrowser正在访问的网页源码的方法。一般方法是利用TWebBrowser控件中的Document对象提供的IPersistStreamInit接口来实现,具体就是:先检查WebBrowser.Document对象是否有效,无效则退出;然后取得IPersistStreamInit接口,接着取得HTML源码的大小,分配全局堆内存块,建立流,再将HTML文本写到流中。程序虽然不算复杂,但是有更简单的方法,所以实现代码不再给出。其实基本上所有IE的功能TWebBrowser都应该有较为简单的方法来实现,获取网页源码也是一样。下面的代码将网页源码显示在Memo1中。  
   
     Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterHtml);  
   
    同时,在用TWebBrowser浏览HTML文件的时候要将其保存为文本文件就很简单了,不需要任何的语法解析工具,因为TWebBrowser也完成了,如下:  
   
     Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterText);  
   
 

 
  lihuasoft(学习低调做人)      
   
  的   很深  
   
  看不懂

简单的就是最好的。我的也是抄别人的。抛别人的玉引玉。

^  
 

posted on 2008-10-14 16:35 delphi2007 阅读(845) 评论(0)  编辑 收藏 引用
只有注册用户登录后才能发表评论。