知道一个url,如何获得它的html源文件。

go_my_sky 2003-05-16 09:11:37
知道一个url,如何获得它的html源文件。

如何做效率才能高些。

一定要用webbroker吗?
...全文
148 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
888888888888 2003-05-18
  • 打赏
  • 举报
回复
关注
go_my_sky 2003-05-17
  • 打赏
  • 举报
回复
非要网站和具体路径分开才行吗?
www.microsoft.com/default.asp
连在一起的有没有办法啊?
coreblood 2003-05-17
  • 打赏
  • 举报
回复
如果是对有规律的页面的话 先自己分析然后 把你自己的分析思想用程序俩实现吧
当然主要分析的地方自己想了

可以搞定特别的地方
Wnyu 2003-05-17
  • 打赏
  • 举报
回复
上例中的hIs, hIR, hIc, 在运行时都不能为0, 如过为0, 则说明没有完成。
你看看是那一个句子没成功?
go_my_sky 2003-05-17
  • 打赏
  • 举报
回复
就是读不到html源文件,什么结果也没有。
也不出错误提示。

我用webbroker可以不受参数影响,可以读到本页面的源文件。
但是效率太底,相当于用ie打开页面。
如果页面有跳出窗口也没有屏蔽掉。
xiaoyuer0851 2003-05-17
  • 打赏
  • 举报
回复
厉害………………

学习中
Wnyu 2003-05-17
  • 打赏
  • 举报
回复
有错误提示吗?

一般情况下,默认的文件名是index.htm, index.html, default.htm, default.asp
但/Expert/topic/1794/1794907.xml?temp=.8144037不是一个单纯的Html, 后面戴了参数,由服务器来生成的动态网页,你用IE的file--> save as... -->存盘后还是不能直接看到!
go_my_sky 2003-05-17
  • 打赏
  • 举报
回复
我是想获得任意一个url的html源文件。
html源文件可能是asp,php等带参数产生的,也可能直接就是html文件。

webbroker主要是要打开并执行该页面然后才能读取html。
这样效率较差,我想直接读取html源文件。

各位大虾发表一下意见啊!
go_my_sky 2003-05-17
  • 打赏
  • 举报
回复
如果我循环抓页面起来也是个问题。

有什么好的解决方法呢?
go_my_sky 2003-05-17
  • 打赏
  • 举报
回复
就比如本页面。我直接修改。
www.microsoft.com => http://expert.csdn.net

/Default.asp => /Expert/topic/1794/1794907.xml?temp=.8144037

但没有成功。
go_my_sky 2003-05-17
  • 打赏
  • 举报
回复
如果是asp页面后面还带参数呢?

马上给分!
Wnyu 2003-05-17
  • 打赏
  • 举报
回复
用Pos命令分离
Wnyu 2003-05-17
  • 打赏
  • 举报
回复
步骤要一步一步来:
1. “www.microsoft.com“是和网站连接, 如果没连上, 就不可能拿下源文件。
2. 连上之后, 就指明要读的文件名(或叫网页/Default.asp)。
3. 开始用循环来读, 直到读完为止。
实际运用上,可以直接读URL的第一个“/”就可以分离他们了。
Wnyu 2003-05-16
  • 打赏
  • 举报
回复
需要把上面例子的"www.microsoft.com"改为你上拿的网站,
"/default.asp" 改为你要的html文件.
Wnyu 2003-05-16
  • 打赏
  • 举报
回复
wininet的httpGet能把URL上的主页内容Get下来:
unit ReadHttpFiles;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, wininet,
StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
RichEdit1: TRichEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
hIs, hIc, hIR : Hinternet;
pcbuf : pChar;
dwRead : Dword;
begin
dwRead := 0;
GetMem(pcbuf,1024);
hIs := InternetOpen('HttpGet', INTERNET_OPEN_TYPE_DIRECT,
NIL, NIL,0);
hIc := InternetConnect(hIs, 'www.microsoft.com', INTERNET_DEFAULT_HTTP_PORT,
NIL, NIL, INTERNET_SERVICE_HTTP,0,0);
hIR := HttpOpenRequest(hIC, nil, '/Default.asp', nil, nil,nil, 0,0);
if HttpSendRequest(hIR, nil, 0,nil,0) then
begin
while InternetReadFile(hIR, pcbuf,1024,dwRead) do
begin
if dwRead <= 0 then break;
RichEdit1.Text := RichEdit1.text + pcBuf;
end;
end;
InternetCloseHandle(hIR);
InternetCloseHandle(hIC);
InternetCloseHandle(hIs);
FreeMem(pcBuf);
end;

end.

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧