时间:2022-10-06 11:52:23
[摘 要] 目前许多政府机关,教育单位等都是以动易为系统内核制作的网站,但是,各单位由于地域上的关系,一般都是使用自己独立的网站服务器,这样就造成了本单位和下属单位网站之间的网站数据交互非常困难,成为一个可研究并急需解决的实际问题,基于上述原因,本文特别制作了动易网站数据自动采集工具。
[关键词] 动易 网站系统 自动采集软件
中图分类号:S611文献标识码:A 文章编号:
1 实现原理
利用VB编写程序,通过WEBBORWS控件,自动定时加载下属网站的相关网页,通过对页面自动进行分析,得到网页具体信息的标题和超级链接等数据,利用ADO技术直接写入本地的动易数据库。
2 动易数据库结构
动易数据库一般放在网站根目录下的database目录下,名称可自行定义,打开数据库后,主要的新闻数据表名称为PE_Article,它的结构如下:
3 下属单位采集页面的编写
下属单位网站中必须要放一个固定名称的具体页面文件caiji.asp
主要用来存放要采集的栏目的具体新闻条目信息,asp代码如下:
strHTML = GetTemplate(ChannelID, 1, 650)‘取得模板ID
Call ReplaceCommonLabel
strHTML = Replace(strHTML, "{$PageTitle}", SiteTitle & " >> " & PageTitle)
strHTML = Replace(strHTML, "{$ShowPath}", strNavPath)
strHTML = Replace(strHTML, "{$MenuJS}", GetMenuJS("", False))
strHTML = Replace(strHTML, "{$Skin_CSS}", GetSkin_CSS(0))
Set PE_Content = New Article
PE_Content.Init
strHtml = PE_Content.GetCustomFromTemplate(strHtml)
strHtml = PE_Content.GetPicFromTemplate(strHtml)
strHtml = PE_Content.GetListFromTemplate(strHtml)
strHtml = PE_Content.GetSlidePicFromTemplate(strHtml)
Response.Write strHtml
Set PE_Content = Nothing
Call CloseConn
%>
4 软件的具体实现
打开VB6,进行如下界面设计:程序主要引用了WEBBROWS控件和定时器控件,并且进行了ADO引用。
采集系统写入数据库核心代码为:
getdbstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Sitexu.asp" & ";" & "Persist Security Info=False;"
Set con = New ADODB.Connection
con.ConnectionString = getdbstr利用ADO打开数据库
con.Open
Set adodct = New ADODB.Recordset
Set adodct.ActiveConnection = con
adodct.Open "select * from PE_Article order by ArticleID desc"
Id = adodct!ArticleID
WebBrowser1.Navigate “下属单位网址/caiji.asp”
Set vtag = WebBrowser1.Document.getElementById("xu1")
Set vtag = WebBrowser1.Document.getElementById("xu1").getElementsByTagName("a")
zuozhe = xz(ii) + "" + Mid(vtag(i).Title, InStr(1, vtag(i).Title, "者:") + 2, InStr(1, vtag(i).Title, "¸更新时间") - InStr(1, vtag(i).Title, "者:") - 4)
对标题链接进行自动分析,得出标题名称和链接地址。
If adodct.State adStateClosed Then adodct.Close
adodct.Open "select * from PE_Article where ClassID=33 and LinkUrl='" & vtag(i).href & "'", con, 1, 3
Id = Id + 1
adodct.AddNew
adodct!ArticleID = Id
adodct!ChannelID = 1001
adodct!classid = 33相关栏目ID
adodct!Title = vtag(i).innerText
adodct!CopyFrom = xz(ii)
adodct!Inputer = xz(ii)
adodct!Author = zuozhe
adodct!Editor = xz(ii)
adodct!LinkUrl = vtag(i).href
adodct!Keyword = xz(ii)
adodct!UpdateTime = Right(vtag(i).Title, Len(vtag(i).Title) - InStr(1, vtag(i).Title, "¸更新时间") - 4)
adodct!CreateTime = Right(vtag(i).Title, Len(vtag(i).Title) - InStr(1, vtag(i).Title, "¸更新时间") - 4)
adodct!Status = 3adodct!Hits = 0
adodct!content = ""
adodct.Update更新数据库
程序编译后,放在本单位动易网站的数据库所在目录下,运行,即可自动定时采集下属单位网站信息。
5 结束语
此程序必须配合本单位的动易网站数据库系统及下属单位的网站采集页一齐使用,目前已成功应用于河北省玉田县教育局乡镇网站信息自动采集系统,具体效果请参看该局网站主页最下方的目标考核入口链接,网址为,欢迎您的访问查看。
自动采集效果图
注:文章内所有公式及图表请用PDF形式查看。