如何可以快速查看网页的源文件,就像在ie里面右键点击查看源文件(300分)

  • 主题发起人 主题发起人 Peter_Xiong
  • 开始时间 开始时间
P

Peter_Xiong

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在是用WebBrowser控件
var
s: string;
WebBrowser1: TWebBrowser;
WebBrowser1.Navigate('url');
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
begin
application.ProcessMessages;
end;
s := IHtmlDocument2(WebBrowser1.Document).Body.OuterHtml;

但是这样做很慢,而且要等网页全部都下载完才能去取源文件。
有没有什么快一点的办法?

还有一个问题,adsl拨号连接,在连接,断开,连接,断开若干次后,有时会出错,状态就是正在连接或者是正在断开,碰到这种情况可以在程序里面重置一下,而不用重启计算机吗?
 
不下载完你怎么可能获得源文件.....-_-
网页显示就是解析源文件啊.....没显示完就是因为源文件没下载完呢.......-_-

你要是不想程序等待网页下载完才有反映....把
s := IHtmlDocument2(WebBrowser1.Document).Body.OuterHtml;
写到webbrowser的OndDocumentComplete事件里不就行了

adsl拨号问题......你把网线拔掉等状态恢复了重插上
 
procedure TForm1.Button1Click(Sender: TObject);
var
s: TStringStream;
begin
s := TStringStream.Create('');
try
IdHTTP1.Get('http://.............',s);
Memo1.Text := s.DataString;
finally
s.Free;
end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
s: TStringStream;
begin
s := TStringStream.Create('');
try
IdHTTP1.Get('http://.............',s);
Memo1.Text := s.DataString;
finally
s.Free;
end;
end;


----------------
出错了
302 Object moved.
 
我也正想这问题呢!!!!!!!!!
 
就是下载了源码,但是别让下载图片之类的
 
回答第二个问题, 和你的路由器有关系, 换个好点的就没问题了...
 
ie里面不是有个不显示图片之类的,WebBrowser1控件上有没有这样的设置啊?或者跟楼上的一个朋友说的可以设置为只下载文字,这样会不会快一点呢?
或者有没有其他的控件可以完成这样的功能,不是非得用WebBrowser1不可.
像idhttp控件可以吗?我用这个控件的时候总是出错?
 
....看来你不是要看网页,只是想获得网页内容,那idhttp是最适合的了,你就把页面当做一个文件下载就OK了......IdHTTP1.Get('http://.............',s);最适合你

至于出错.....估计是你id控件没装好的问题......去delphi盒子里下个带source的重装下吧
 
我又测试了一下,加了句
IdHTTP1.HandleRedirects:=True;
就不会出错了.
现在有另外一个问题.就是这个网页需要登录一下的.要怎么设置让其自动登录呢?
 
自己解决了.先用webbrowser控件取得cookie,然后将其复制给idhttp用就可以正常打开了.
还是要感谢各位的相助.
 
之前我也是用IdHTTP1.Get('http://.............',s);
但是有个问题,例如
IdHTTP1.Get(http://www.ynstudy.cn/show_xuexiao.asp?id=2 and 1=2',s);
这种情况下会出现错误:
HTTP/1.1 500 Internal Server Error.
不知道怎么解决?
用webbrowser不会出错
 
取得网页文本的信息,已有很多介绍了,而获取网页上的图片,即将图片保存到本地,用IdHTTP1好象实现不了,保存的jpg文件是空的,有人知道怎么回事吗?
 
后退
顶部