王朝知道
分享
 
 
 

头晕的ASP程序~

王朝知道·作者佚名  2009-09-01  
宽屏版  字体: |||超大  
 
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
 
问题描述:

找找高手中~如果打开指定页,将所有的连接<a></a>中href的地址得到,并逐级的将所有页的连接<a></a>中href的地址也得到呢。

有点类似于递归来进行文件搜所的意思~

用了几种方法。太乱了。。。我现在只能把头几页的所有连接得到

答的正确加送200分!

参考答案:

这个...

FileCounts(URL)是得到所有内容,也就是HTML形势的对吧

那么你现在是否能得到getAllURL(HTMLContent) as Href ?

就是根据URL得到全部的URL集合?

只写算法,不具体代码了..希望能理解,到了这个地步估计你已经能得到一个页面的URL了(不然你前几页是怎么来的...)

由于是ASP的,用事件驱动可能不是很容易理解,所以我就用函数调用的办法了.找到合适的URL之后就dosth.(如果不要重复的,那么见下文)

dim FinalURLS(60000) as string '用于保存全部的URL列表,由于没有.net的hashtable以及arraylist 只能用这个凑合了 -_-!

dim Layers as integer '要搜索的最大层数,总不能无限吧...

dim CurLayers as integer '当前的层数

dim numOfUrl as long '现在找到的URL个数

dim NumOfTestUrl as long '测试的个数

public function doSth(URL as URL)

'比如写数据库啦,计算个数啦,看看里面有没有敏感信息啦之类

'找到之后调用的

end sub

public function getAllURL(URL) as string

dim __URLs() as String '这个就是临时存放URL的类型,你可以想象成string类型

dim __SubURLs() as String

__URLs=分析(URL) '这个分析,就是你的根据内容找到href的算法

if ubound(__URLs)>0 then

'至少有一个href

dim i as long

for i=0 to ubound(__URLs)

addHreftoURLs(__URLs(i)) '加到最后的结果,这个过程是处理字符串的,由于没有字典或者hashtable,所以这个用来遍历字符串,看看有没有重复的,然后剔除掉.

if Layers<>curLayers then '看看有没有超过最大要求层

'开始干活,目录层数加1

curLayers=curLayers+1

'开始递归调用,能看懂吧,在这个循环里面找下一层(Sub的)

__SubURLs=getAllURL(__URLs(i))

'由于我们是用addHreftoURLs来计算的,所以不用返回也是可以的,这里返回的目的是一种习惯,可能以后会用到某个网页的全部URL所以留着吧,去掉也行

getAllURL=__SubURLs

end if

end function

public sub addHreftoURLs(URL) '用于添加进去的

numoftesturl=numoftesturl+1

dim i as long

for i=0 to numofurl '在已经添加进去的找有没有重复的

if 重复了...... 就不写具体你怎么判断是否重复的了 - -

else

1 添加进去 同时numofurl+1 多了一个.

2 然后调用soSth.这个用于模拟Event,就是发生了"找到了"这个事件.你可以什么都不做,也可以 记录数据库或者用于其他地方.都是习惯问题,这个功能很实用的,所以通常写代码的时候直接习惯的留出来了....

end if

next

end sub

主要就这几个部分

1 全局变量,比如可以显示当前进度(额..ASP可能有难度...)

2 doSth...用不到的话可以无视

3 递归得到全部的URL 有层数控制

4 判断这个URL是否有效(重复)

主要就是那个递归,虽然代码不全,但是意思已经体现出来了.递归的时候容易让人搞混乱的地方是先做什么后做什么,哪部分是该做的.. 慢慢想清楚,最终还是能解决的.不要急着写代码.实在不行就画流程图...

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格&#8203;十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有