网络蜘蛛程序开发(蜘蛛开发的4个方法)


网络蜘蛛程序开发2008 年 03 月 08 日 星期六 02:41 网络蜘蛛程序开发 什么是网络蜘蛛 网络蜘蛛是一种能自动到网上查找信息的一种程序,该程序具有高度的自动性, 只要告诉他一个网站, 他就可以从这个网站开始依次通过该网站的链接自动抓取 链接内容以及网址,然后就顺着这些链接一直抓下去。 网络蜘蛛可以方便的实现从网络中抓取信息并且保存到当地数据库。 智能型的网络蜘蛛甚至可以抓取您指定的信息并自动过滤掉不相关的信息, 替代 重复的人工操作。 网络蜘蛛运行时必须设置种子网站,设置的种子网站必须可以链接下去,否则可 能会造成蜘蛛停止工作。因此我们在设置种子网站时可以设置比较大型的、链接 比较多的网站, 当然您也可以设置多个种子网站以确保网络蜘蛛能运行足够长的 时间。蜘蛛程序网站层次及其工作原理描述 序号 网站 层次 父序号 1 1 0 2 2 1 3 2 14 3 2 5 3 2 [表格描述] 蜘蛛程序首先从层次 1()开始提取所有的网站链接, 把所有网站链接记录到数据库(或者大数组等),并把这些网站链接标识为层次 2; 当把层次 2 全部记录到数据库后,开始从层次 2 中顺序为第一的(这里指序号为 2 的网站)网站链接开始提取其下面的的所有链接记录到数据库,并把这些网站 链接标识为层次 3;然后依次把层次为 2 的网站的所有链接记录到数据库,同时 把他们的层次标识为层次 3; 当层次 3 全部记录数据库后,开始从层次 3 中顺序为第一的网站链接开始提取, 依次类推即可! 注意:程序要保留一个指针记录当前正在操作的序号!另外您也可以增加一个父 序号字段来记录他们之间的继承关系! 层次 1 表示为网络种子;我们这里把网络种子放在第一层,根据需要您可以设置 一个或者多个网络种子,实际上我们通过这个层次图可以很显然地看出来,低层 次的网址就是高层次的网络种子。

搜索引擎蜘蛛程序_python开发windows程序_网络蜘蛛程序开发

也就是说只要有一个或者几个网络种子,我们 就可以通过他们的链接找到更多的网络种子。 只要这样我们的蜘蛛才能永远地运 行下去! 层次 2 是通过层次 1(即网络种子)抓取到的链接; 层次 3 是通过层次 2 抓取到的链接; 依次类推,构成一棵大树! 蜘蛛程序关键代码 由于我对 VB 比较熟悉,所以在此我用 VB 实现核心部分的代码,当然您也可以很 简单地转换成其他语言代码。 在这里了为了简单起见,我们这里不对数据库操作网络蜘蛛程序开发, 我们建立一个二维数组存放我们的网址!!Dim Web(4,10000) Dim Pointer Dim Id Dim Layer Dim Running‘//建立数组 ‘//建立指针,记录当前种子 ‘//建立序号,记录当前抓区网站的序号 ‘//建立层次,记录当前正在运行种子的层次 ‘//建立是否运行的标志网络蜘蛛程序开发(网络蜘蛛程序网站层次及其工作原理描述-苏州安嘉), ‘//用来设置网络种Private Function NewworkSeed_Set() As Boolean 子,为演示方便我们把种子放在数组,'//当然您也可以根据需要把他们直接放到数据库中 Web(0,0) = 1 Web(1,0) = “” Web(2,0) = 1 Web(3,0) = 0 表示为网络原始种子 Web(4,0) = “奈福网络” ‘//当然这里可以设置多个网络原始种子 Web(0,1) = 1 Web(1,1) = “” Web(2,1) = 1 Web(3,1) = 0 Web(4,1) = “asp 技术站” ‘//设置网络种子后,记录种子序号开始后的序号,这里设置了 2 个种 子,所以 Id=2 开始 Id = 2 End Function ‘//序号 ‘//网站 ‘//层次 ‘//父序号,0Private Sub Spider_Work() 数组‘//蜘蛛工作程序,抓取网站并记录到‘//根据需要可以把他 们放到数据库中 Dim A For Each A In WebBrowser.Document.All If UCase(A.tagName) = "A" Then If IsValidWeb(A.href) Then Id = Id + 1 Web(0, Id) = Id 录当前网站的序号 Web(1, Id) = ‘//记录当前网站 Web(2, Id) = Layer 当前网站的层次 If Web(2,Pointer) Layer Then Layer = Layer ‘//当指针层次与当前层次不同的话 ‘//记录 ‘//记A.href+ 1‘//则说明层次已经发生了增加 Web(3, Id) = Pointer 当前网站的父序号 Web(4,Id) = A.innerText 记录当前网站的名称 End If End If Next Pointer = Pointer + 1 WebBrowser.Navigate Web(1, Pointer-1) ‘//抓取当前种子完毕后,自动 ‘// ‘//记录跳转到下一个种子 If Running = False Then Exit Sub End If End Sub Private Function Spider_Init() As Boolean Pointer = 1 Id = 2 Layer = 0 ‘//蜘蛛程序初始化函数 ‘//运行为否,退出运行‘//指针设置为 1网络蜘蛛程序开发,表示从第一个序号开始运行 ‘//序号设置为 2,以后可以读取记录 ‘//层次设置为 0,表示蜘蛛第一次运行 ‘//以上指针,序号,层次都可以记录并且方便以后读取 If IsValidWeb(Web(1, Pointer-1)) Then 确,如果正确初始化成功,否则失败 Running = True Spider_Init = True WebBrowser.Navigate Web(1, Pointer-1) Else Running = False Spider_Init = False Exit Function End If End Function Private Sub WebBrowser_DocumentComplete(ByVal pDisp As Object, URL As Variant) ‘//WebBrowser 控件 ‘//判断种子是否正Call Spider_Work() End Sub Private Function IsValidWeb(_href) As Boolean cn 域名函数 ‘//判断是否是‘//通过该函数可以实现抓取指定网站或数据 If InStr(_href, "") > 0 And InStr(_href, ".cn/") > 0 And Len(_href)


免费领取: 只要加微信,回复“入门视频”,即刻获取 全网最系统,最容易入门的的Web前端入门全套视频,C语言入门全套入门视频,大数据全套入门视频,PhP全套入门视频,Pathon全套入门视频,Java全套入门视频!!!微信号:18370228235 ,立即领取!
版权申明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容, 联系QQ892482387,本站将立刻清除。

分享到