如何获取网页的源文件
怎么获取网页的源文件?
用ie浏览网页,然后运行程序。就会把当前网页的源文件保存下来。
这个delphi里怎么实现??
------解决方案--------------------
//搜的,用WebBrowser
uses
ActiveX;
function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;
var
ps: IPersistStreamInit;
fs: TFileStream;
sa: IStream;
begin
ps := WebBrowser.Document as IPersistStreamInit;
fs := TFileStream.Create(FileName, fmCreate);
try
sa := TStreamAdapter.Create(fs, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
finally
fs.Free;
end;
end;
function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean;
var
ps: IPersistStreamInit;
ss: TStringStream;
sa: IStream;
s: string;
begin
ps := WebBrowser.Document as IPersistStreamInit;
s := ' ';
ss := TStringStream.Create(s);
try
sa := TStreamAdapter.Create(ss, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
if Result then ACode.Add(ss.Datastring);
finally
ss.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WB_SaveHTMLCode(Webbrowser1, 'c:\test.txt ');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
WB_GetHTMLCode(Webbrowser1, Memo1.Lines);
end;
------解决方案--------------------
一个简单的例子
Memo1.Lines.Add(idhttp1.get( 'http://www.baidu.com '));
------解决方案--------------------
想办法获取Ie地址栏的地址,然后用楼上的例子替换地址就可以获取源码了
------解决方案--------------------
BHO
或
获得当前IDocument 接口
用ie浏览网页,然后运行程序。就会把当前网页的源文件保存下来。
这个delphi里怎么实现??
------解决方案--------------------
//搜的,用WebBrowser
uses
ActiveX;
function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;
var
ps: IPersistStreamInit;
fs: TFileStream;
sa: IStream;
begin
ps := WebBrowser.Document as IPersistStreamInit;
fs := TFileStream.Create(FileName, fmCreate);
try
sa := TStreamAdapter.Create(fs, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
finally
fs.Free;
end;
end;
function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean;
var
ps: IPersistStreamInit;
ss: TStringStream;
sa: IStream;
s: string;
begin
ps := WebBrowser.Document as IPersistStreamInit;
s := ' ';
ss := TStringStream.Create(s);
try
sa := TStreamAdapter.Create(ss, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
if Result then ACode.Add(ss.Datastring);
finally
ss.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
WB_SaveHTMLCode(Webbrowser1, 'c:\test.txt ');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
WB_GetHTMLCode(Webbrowser1, Memo1.Lines);
end;
------解决方案--------------------
一个简单的例子
Memo1.Lines.Add(idhttp1.get( 'http://www.baidu.com '));
------解决方案--------------------
想办法获取Ie地址栏的地址,然后用楼上的例子替换地址就可以获取源码了
------解决方案--------------------
BHO
或
获得当前IDocument 接口