如何采集静态文章系统

2018-06-22 00:59:01来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

目前网站基本上都生成静态的了,对于那些技术不是很高深的小偷来说,去偷一个文件名是以时间加随机数来命名的
文章系统,有点困难,而目前的大多数静态的系统都是以这样的方式命名的,这个不像有asp?id=1 to asp?id=100这样好
这个命名是没规律的,那么,这种文章系统怎么样采呢,以下就以自已的站www.asp315.com这例来写一篇关于采集静态文
章系统的教程吧!
??首先,我们打开www.asp315.com你会发现教程很多,我们随便点一个进去吧,就点JSP教程吧,里面还分了子类,这个不管
我们就采这一个大类,http://www.asp315.com/artical/2/1.htm,看看每一篇文章的名称,基本上是没规律,直接偷是没戏了
,只能转着弯偷啦,看到这个分类页下面有下一页,看看这些页面的规律,会发现是以1.htm,2.htm命名的,这样就好办多了
点一下最后一页,141.htm,这些页面都是一样的,整个站的分类页都是一样的,只要搞定了这一页,那么,文章页的文件名就知道了
只要记下了文件名,那么,偷起来就容易多了,在这里我只讲怎么样偷到这些文件名,不去讲具体的采集某个页面,因为那个太简单了
不用我说,大家都会!
??首页,那个读取远程的函数是不能少啦,以下我贴出来
Function getHTTPPage(Path)
t = GetBody(Path)
getHTTPPage=BytesToBstr(t,"gb2312")
End function

Function GetBody(url)
on error resume next
Set Retrieval = CreateObject("Microsoft.XMLHTTP")
With Retrieval
.Open "get", url, False, "", ""
.Send
GetBody = .ResponseBody
End With
Set Retrieval = Nothing
End Function
Function BytesToBstr(body,Cset)
dim objstream
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
然后我们先写一个最简单的程序来先,一步一步的来,手把手的教,(呵,废话说多了*.*)
把上面的代码命名为get.asp吧
再一个页面代码就叫getfilename.asp吧.代码如下:

response.write gethttppage("http://www.asp315.com/artical/2/1.htm")
%>
呵,getfilename.asp完成了,当然,这个是最简单的照搬啦,我们要一步一步的来改,来完善,
远行那个当代码,你会看到和那个页面基本上一的页面,当然,有些图片显示不了!
然后我们分析这个页面,首页,点右键,查看源代码找到这一行

人气
当然,我们不要这么多,光人气二字都可以,但是为了保险,我们还是多要点,
这个是那些文件标题开始的地方,那么我们再找到结束的地方,
页数
呵,这些代码找到了,这个多一点少一点没事,我们代码要一步一步完善的,
然后我们将getfilename.asp改成

dim dj,l1,l2
dj=gethttppage("http://www.asp315.com/artical/2/1.htm")
l1=instr(dj," 人气")
l2=instr(l1,dj,"页数")
dj1=mid(dj,l1,l2-l1)
response.write dj1
%>
再去运行这个文件,看一看,
你会发现东西少了好多,呵,也简单多了,那么,我们再找去规律来吧,一样上查看源代码,
然后你会发现每一条都是一个 标签组成的,这就好办多了,
djmore=split(dj1,"")
记住,仔细查看,你会发现多了几个 ,
那就把第一个和最后二个去掉,变成这样的了
我们来循环

response.write dj1换成
djmore=split(dj1," ")
for i=1 to ubound(djmore)-2
response.write djmore(i)
next
这样就会把每一行都分出来了,分成了以下这样的
?? CSS语法手册(一)字体属性
????2005-7-21
????