如何取网页源码? 请写的具体些,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看网络蜘蛛是怎么抓取网页吧,看完后可要多发表心得呀http://www.softboss.com/ForumDetail.asp?LinkType=code&LinkID=6--------------软件大佬是基于软件业的研发、学习、交易、管理的网络平台,是您事业开始的地方,请访问www.softboss.com! 手头没有Delphi,无法帮你测试,不妨试试:先引用mshtml单元,Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterHtml) 一个很简单的例子:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ScktComp;type TForm1 = class(TForm) ClientSocket1: TClientSocket; Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);begin ClientSocket1.Host := 'www.csdn.net'; ClientSocket1.Port := 80; ClientSocket1.Active := True;end;procedure TForm1.ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket);begin Socket.SendText('GET http://www.csdn.net/index.htm HTTP/1.0'#$0D#$0A#$0D#$0A);end;procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);var sResult: String;begin sResult := Socket.ReceiveText(); Memo1.Lines.Add(sResult);end;end. 哈,秀峰的代码可以了-->forgot 你的代码我在书上也有见过,只是不行啊 forgot 代码怎么会不行?你要获取网页代码的时候先要浏览:WebBrowser1.Navigate( 'www.google.com' );获取后,调用:Memo1.Lines.Add( IHtmlDocument2(WebBrowser1.Document).Body.OuterHtml ); 我有个完整楼主不妨看看unit HttpBody;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Psock, NMFtp, ComCtrls, StdCtrls, NMHttp,ShellApi;type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; GroupBox1: TGroupBox; CheckBox1: TCheckBox; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; Label4: TLabel; Memo1: TMemo; StatusBar1: TStatusBar; NMHTTP1: TNMHTTP; procedure FormCreate(Sender: TObject); procedure Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure NMHTTP1Connect(Sender: TObject); procedure NMHTTP1ConnectionFailed(Sender: TObject); procedure NMHTTP1Disconnect(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begin Edit1.Text:='Http://www.163.com';end;procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);begin if Key=VK_RETURN then begin NMHTTP1.InputFileMode:=False; NMHTTP1.OutputFileMode:=False; NMHTTP1.ReportLevel:=Status_Basic; if CheckBox1.Checked then begin NMHTTP1.Proxy:=Edit2.Text; NMHTTP1.ProxyPort:=strToint(Edit3.Text); end; NMHTTP1.Get(Edit1.Text); Memo1.Text:=NMHTTP1.Body; end;end;procedure TForm1.Button1Click(Sender: TObject);begin NMHTTP1.InputFileMode:=False; NMHTTP1.OutputFileMode:=False; NMHTTP1.ReportLevel:=Status_Basic; if checkBox1.Checked then begin NMHTTP1.Proxy:=Edit2.Text; NMHTTP1.ProxyPort:=strToint(Edit3.Text); end; NMHTTP1.Get(Edit1.Text); Memo1.Text:=NMHTTP1.Body; end;procedure TForm1.Button2Click(Sender: TObject);begin if Memo1.Lines.Text <>'' then begin //Memo1中的内容存储为文件 Memo1.Lines.SaveToFile('Httptemp.htm'); //调用ShellExecute函数显示文件 ShellExecute(Handle,Nil,'Httptemp.htm',nil,nil,SW_SHOWNORMAL); end;end;procedure TForm1.NMHTTP1Connect(Sender: TObject); {ONConnect事件继承自TPowerSock类, 该事件当客户机向远程主机发出请求时,在远程主机建立连接时触发}begin StatusBar1.SimpleText:='连接成功';end;procedure TForm1.NMHTTP1ConnectionFailed(Sender: TObject);{在远程主机建立连接失败时触发}begin showMessage('连接失败');end;procedure TForm1.NMHTTP1Disconnect(Sender: TObject);//与远程主机建立有效连接后,客户机从服务器上断开时触发begin if statusbar1 <>nil then statusbar1.SimpleText:='已断开';end;procedure TForm1.Button3Click(Sender: TObject);begin Memo1.Clear;end;end. delphi拼SQL 如何禁止窗体缩放 [求修改输入法的代码]谢谢,很简单,高分,急~! [Error] unDM2.pas(1061): Undeclared identifier: 'VarArrayOf' 问个问题~!论坛的大哥大姐们请进~ w我有一个项目的原程序,但我只要其中的一个功能,那我怎么把这个功能分离开 请问Delphi如何调用无返回值(Void类型)的dll函数? 关于查找两个字符字段相连与某一值相等的sql语句怎样写? 查找程序的子窗口,如何实现? 请问如何这样控制光驱???70大分. 请教这样的客户管理系统应如何报价或者报多少 求助BDE的问题,急!急!急!
http://www.softboss.com/ForumDetail.asp?LinkType=code&LinkID=6--------------
软件大佬是基于软件业的研发、学习、交易、管理的网络平台,是您事业开始的地方,请访问www.softboss.com!
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ScktComp;type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Host := 'www.csdn.net';
ClientSocket1.Port := 80;
ClientSocket1.Active := True;
end;procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.SendText('GET http://www.csdn.net/index.htm HTTP/1.0'#$0D#$0A#$0D#$0A);
end;procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
sResult: String;
begin
sResult := Socket.ReceiveText();
Memo1.Lines.Add(sResult);
end;end.
你要获取网页代码的时候先要浏览:
WebBrowser1.Navigate( 'www.google.com' );
获取后,调用:
Memo1.Lines.Add( IHtmlDocument2(WebBrowser1.Document).Body.OuterHtml );
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Psock, NMFtp, ComCtrls, StdCtrls, NMHttp,ShellApi;type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
GroupBox1: TGroupBox;
CheckBox1: TCheckBox;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
Label4: TLabel;
Memo1: TMemo;
StatusBar1: TStatusBar;
NMHTTP1: TNMHTTP;
procedure FormCreate(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure NMHTTP1Connect(Sender: TObject);
procedure NMHTTP1ConnectionFailed(Sender: TObject);
procedure NMHTTP1Disconnect(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text:='Http://www.163.com';
end;procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then
begin
NMHTTP1.InputFileMode:=False;
NMHTTP1.OutputFileMode:=False;
NMHTTP1.ReportLevel:=Status_Basic;
if CheckBox1.Checked then
begin
NMHTTP1.Proxy:=Edit2.Text;
NMHTTP1.ProxyPort:=strToint(Edit3.Text);
end;
NMHTTP1.Get(Edit1.Text);
Memo1.Text:=NMHTTP1.Body;
end;end;procedure TForm1.Button1Click(Sender: TObject);
begin
NMHTTP1.InputFileMode:=False;
NMHTTP1.OutputFileMode:=False;
NMHTTP1.ReportLevel:=Status_Basic;
if checkBox1.Checked then
begin
NMHTTP1.Proxy:=Edit2.Text;
NMHTTP1.ProxyPort:=strToint(Edit3.Text);
end;
NMHTTP1.Get(Edit1.Text);
Memo1.Text:=NMHTTP1.Body;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
if Memo1.Lines.Text <>'' then
begin
//Memo1中的内容存储为文件
Memo1.Lines.SaveToFile('Httptemp.htm');
//调用ShellExecute函数显示文件
ShellExecute(Handle,Nil,'Httptemp.htm',nil,nil,SW_SHOWNORMAL);
end;
end;procedure TForm1.NMHTTP1Connect(Sender: TObject);
{ONConnect事件继承自TPowerSock类,
该事件当客户机向远程主机发出请求时,在远程主机建立连接时触发}
begin
StatusBar1.SimpleText:='连接成功';
end;procedure TForm1.NMHTTP1ConnectionFailed(Sender: TObject);
{在远程主机建立连接失败时触发}
begin
showMessage('连接失败');
end;procedure TForm1.NMHTTP1Disconnect(Sender: TObject);
//与远程主机建立有效连接后,客户机从服务器上断开时触发
begin
if statusbar1 <>nil then
statusbar1.SimpleText:='已断开';
end;procedure TForm1.Button3Click(Sender: TObject);
begin
Memo1.Clear;
end;end.