如何采集静态文章系统
文章系统,有点困难,而目前的大多数静态的系统都是以这样的方式命名的,这个不像有asp?id=1toasp?id=100这样好
这个命名是没规律的,那么,这种文章系统怎么样采呢,以下就以自已的站
章系统的教程吧!
首先,我们打开
我们就采这一个大类,
,只能转着弯偷啦,看到这个分类页下面有下一页,看看这些页面的规律,会发现是以1.htm,2.htm命名的,这样就好办多了
点一下最后一页,141.htm,这些页面都是一样的,整个站的分类页都是一样的,只要搞定了这一页,那么,文章页的文件名就知道了
只要记下了文件名,那么,偷起来就容易多了,在这里我只讲怎么样偷到这些文件名,不去讲具体的采集某个页面,因为那个太简单了
不用我说,大家都会!
首页,那个读取远程的函数是不能少啦,以下我贴出来
FunctiongetHTTPPage(Path)
t=GetBody(Path)
getHTTPPage=BytesToBstr(t,"gb2312")
Endfunction
FunctionGetBody(url)
onerrorresumenext
SetRetrieval=CreateObject("Microsoft.XMLHTTP")
WithRetrieval
.Open"get",url,False,"",""
.Send
GetBody=.ResponseBody
EndWith
SetRetrieval=Nothing
EndFunction
FunctionBytesToBstr(body,Cset)
dimobjstream
setobjstream=Server.CreateObject("adodb.stream")
objstream.Type=1
objstream.Mode=3
objstream.Open
objstream.Writebody
objstream.Position=0
objstream.Type=2
objstream.Charset=Cset
BytesToBstr=objstream.ReadText
objstream.Close
setobjstream=nothing
EndFunction
然后我们先写一个最简单的程序来先,一步一步的来,手把手的教,(呵,废话说多了*.*)
把上面的代码命名为get.asp吧
再一个页面代码就叫getfilename.asp吧.代码如下:
<!--#includefile="get.asp"-->
<%
response.writegethttppage("
%>
呵,getfilename.asp完成了,当然,这个是最简单的照搬啦,我们要一步一步的来改,来完善,
远行那个当代码,你会看到和那个页面基本上一的页面,当然,有些图片显示不了!
然后我们分析这个页面,首页,点右键,查看源代码找到这一行
<tdwidth="40"height="20"align="center"bgcolor="#F6F6F6">人气</td>
当然,我们不要这么多,光人气二字都可以,但是为了保险,我们还是多要点,
这个是那些文件标题开始的地方,那么我们再找到结束的地方,
<tdwidth="490"align="center">页数
呵,这些代码找到了,这个多一点少一点没事,我们代码要一步一步完善的,
然后我们将getfilename.asp改成
<!--#includefile="get.asp"-->
<%
dimdj,l1,l2
dj=gethttppage("
l1=instr(dj,"<tdwidth=""40""height=""20""align=""center""bgcolor=""#F6F6F6"">人气</td>")
l2=instr(l1,dj,"<tdwidth=""490""align=""center"">页数")
dj1=mid(dj,l1,l2-l1)
response.writedj1
%>
再去运行这个文件,看一看,
你会发现东西少了好多,呵,也简单多了,那么,我们再找去规律来吧,一样上查看源代码,
然后你会发现每一条都是一个<tr></tr>标签组成的,这就好办多了,
djmore=split(dj1,"<tr>")
记住,仔细查看,你会发现多了几个<tr>,
那就把第一个和最后二个去掉,变成这样的了
我们来循环
把
response.writedj1换成
djmore=split(dj1,"<tr>")
fori=1toubound(djmore)-2
response.writedjmore(i)
next
这样就会把每一行都分出来了,分成了以下这样的
<tdwidth="474"height="20"bgcolor="#FFFFFF"><imgsrc="../../images/article_elite.gif"><ahref="../../news/31/200572111233207984.htm"target="_blank"title="CSS语法手册(一)字体属性">CSS语法手册(一)字体属性</a></td>
<tdwidth="80"height="20"align="center"bgcolor="#FFFFFF">2005-7-21</td>
<tdwidth="40"height="20"align="center"bgcolor="#FFFFFF"><scriptsrc="../../showcount.asp?id=18152"></script></td>
</tr>
现在只要分析这一段就简单多了,
我们再来针对djmore(i)这数组中的一项来写一个代码,
l3=instr(djmore(i),"<ahref=")
l4=instr(l3,djmore(i),"""target=""_blank""")
url=mid(djmore(i),l3,l4-l3)
response.wrieurl&"<br>"
这里是为了方便才写成这样的,
把以上这段代替前面的
response.writedjmore(i)
这里加<BR>是为了换行,好看点,然后你看到了URL好像多了点东西,这个我们就要做一些处理了,把
url=mid(djmore(i),l3,l4-l3)变成
url=mid(djmore(i),l3+len("<ahref=")+1,l4-l3-len("<ahref=")-1)
呵,没问题了,再运行时就剩下地址了,
呵,是吧,这只是每一个页的,要全部的,你只要修改一下
dj=gethttppage("
forii=1to141
geturl="
相关文章
- 如何快速的部署一个静态页面到 Web3.0 上?5 分钟解密
- 静态变量的使用
- 静态代理和动态代理的理解一样吗_动态代理原理怎么理解
- linux系统添加静态路由命令_静态路由和默认路由小结
- php源码审计_静态代码审计
- 编译Nginx服务部署静态网站
- 【Android 逆向】Android 进程代码注入原理 ( 注入本质 | 静态注入和动态注入 | 静态注入两种方式 | 修改动态库重打包 | 修改 /data/app/xx/libs 动态库 )
- 考勤系统的最佳实践 - 静态活体检测 API 技术
- Linux系统如何设置静态IP地址(linux设置静态ip地址)
- AspAccess创建静态文件/HTML
- asp伪静态情况下实现的utf-8文件缓存实现代码
- 全局静态存储区、堆区和栈区深入剖析
- C++的静态联编和动态联编详解