【高分求助】如何获得外部网站某个目录下的所有文件目录,并进行读取分析。

comefirst 2008-04-17 10:42:26
我想用ASP做一个东西,需要解决以下问题,希望高手能够帮我参考参考,分数不够可以另外开贴!谢谢
1、如何使用ASP对另一个网站的某个目录进行遍历,以获得所有文件的文件名。

2、如何用ASP读取另一个网站的某个网页内容,以便对其内容进行分析,比如地址为http://www.sina.com/index.htm

3、第2点中,能否做到仅读取前面部分数据,比如说,我只要分析网页文件的<title></title>中的内容,以便减少数据传输的量。

以上问题请给出相应的实现的代码,并附一点说明。

谢谢大家参与。
...全文
245 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
季雨林 2012-05-14
要是真实现了这岂不就是可以越过权限偷取别人网站的文件了
回复
Silentgravity 2010-12-08
我还真是想获取一个网站的根目录信息
回复
comefirst 2008-04-24
谢谢大家的帮助,我最后放弃使用ASP进行分析了。
主要由于
1、ASP的执行速度太慢
2、网站的WinHTTP仅仅支持POST方法而不支持GET方法,而有些我要访问的网站是一定要用GET方法的。
3、ASP里面的函数功能还是太弱了一点,而且中间出错的比较难以进行处理。
4、ASP要持续地执行某一个动作,是不好实现的,会超时,并不适合用于采集信息。
最后决定使用C++ Builder 来制作采集程序,已经基本完成了。
再次感谢大家的回复。
回复
smartcatiboy 2008-04-18
结合正则表达和字典,可以对网站内互相链接的文件进行一定程度的扫描,但仅仅限于互有链接的文件,可以参考网站下载软件。运算量和流量非常大,不适合网站做。
回复
smartcatiboy 2008-04-18
[Quote=引用楼主 comefirst 的帖子:]
我想用ASP做一个东西,需要解决以下问题,希望高手能够帮我参考参考,分数不够可以另外开贴!谢谢
1、如何使用ASP对另一个网站的某个目录进行遍历,以获得所有文件的文件名。

2、如何用ASP读取另一个网站的某个网页内容,以便对其内容进行分析,比如地址为http://www.sina.com/index.htm

3、第2点中,能否做到仅读取前面部分数据,比如说,我只要分析网页文件的 <title> </title>中的内容,以便减少数据传输的量。


[/Quote]
1、不可以,通常网站目录不支持浏览,只支持执行。具体可以查看IIS设置。
2、使用xmlhttp控件,具体可以查以前的帖子
3、不可以,xmlhttp不支持异步,所以没法读取一半就丢掉。而且可执行文件的内容和返回是两回事。

*3如果结合activex组件可以,例如使用winsock异步处理,然后阻塞方式转化成同步。

private mbin() as byte
private mstate as integer
private mstrRet as string

public function gettitleinfo() '在类模块里引用
winsock.localport=0
winsock.remoteport=80
winsock.remotehost="www.csdn.net"
winsock.protocol=0
winsock.connect
while mstate<>conStateCompleted
doevents
wend
gettitleinfo=mstrRet
end function

private sub winsock_close()
mstate=conStateCompleted
mstrRet=procdata(mbin)
end sub

private sub winsock_connect()
dim strPost as string
strPost="GET / HTTP/1.0" & vbcrlf & "Host: www.csdn.net" & vbcrlf& "Accepte: */*" & vbcrlf & vbcrlf
winsock.sendData strPost
mstate=conStateBegin
end sub

private sub winsock_dataarrival(intSize integer)
if intSize<=0 then exit sub
winsock.getdata bin
AppendByte mbin,bin
if checktitle(mbin) then winsock.close
end sub

private sub checktitle()
checktitle=(instrb(mbin,"<title>")>0 and instr(mbin,"</title>")>0 )
end function

这其中有还要处理编码,协议,错误处理等等。
等到做好了,还有防火墙问题,控件更新问题,IIS崩溃问题....
回复
comefirst 2008-04-18
给点具体的行不?
回复
蒋晟 2008-04-18
你需要一个html解析器,网上很多
回复
zl_c 2008-04-17
采集程序,网上多了去了.随便下个研究一下.
回复
采集??
回复
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-17 10:42
社区公告
暂无公告