专利名称:网络蜘蛛垂直数据收集方法
技术领域:
本发明涉及信息分析抓取技术领域,具体涉及一种网络蜘蛛垂直数据收集方法。
背景技术:
目前,随着网络信息的迅速膨胀,互联网的信息量越来越大,现在有的搜索引擎如Google、百度等,搜狗等都是面向所有的用户免费开放的,都力争在搜索返回结果上做到全面,但是上述搜索引擎并不是专门为搜索特定领域资料而设计的,然而人们往往需要借助搜索引擎来帮助他们在大量信息中寻找指定领域的资料,比如求职者在百度中搜索“苏州旅游”,会有部分的旅游信息,但是结果中很多旅游信息都已经过期,有的甚至是一年前甚至更久的职位信息,对于旅游信息这样的时效性非常高的信息,百度这样的搜索引擎明显不能满足用户需求。还有开发网页搜索的产生背景是因为互联网上的网页太多,用户无法找到自己想要的网页,存在两个问题,第一用户从开放式的网页搜索中想要找到自己想要的某一个特定领域的信息时,需要花费大量的时间,例如,对于求职而言,如果用户在google中输入"Java开发”,得到的结果都是讲java开发技巧的,要想看到关于“java开发”的职位,需要用不断的翻页;垂直搜索产生的第二个原因是,领域性网站数量的日益增多,拿招聘来说,现在国内的招聘网站可以说是几百家,除了 51job、chinahr、zhaopin这样的门户之外,各地还有自己的招聘门户,因此,用户想要得到全面的招聘信息,就需要一个网站一个网站打开去看,耗时耗力。
发明内容
本发明的目的克服现有技术中的不足,提供的一种网络蜘蛛垂直数据收集方法,能够为用户提供更加准确的信息,更好的满足用户的检索要求,且算法准确、稳定、不会引起本地资源耗尽,具有良好的应用前景。为了达到上述技术目的,本发明所采用的技术方案是
一种网络蜘蛛垂直数据收集方法,其特征在在于包括以下步骤,
步骤(I)在客户端上建立URL类库和Page类库
URL类库用于组成消息体,并将消息体发送给Web服务器,Page类库用于解析网页头信息、提取链接信息的Page类;
步骤(2)将客户端进程与服务端进程建立连接采用非阻塞方式建立客户端进程与服务端进程的连接;
步骤(3)客户端上构造请求消息体并发送给服务端步骤(4)客户端获取网页头信息和网页体信息
服务端接受客户端上构造请求消息体后,返回网页头信息和网页体信息;
步骤(5)客户端解析网页头信息,保存符合要求的网页体信息,完成网页数据收集。前述的网络蜘蛛垂直数据收集方法,其特征在在于步骤(4)所述网页头信息包括文件类型、大小、最后修改时间内容,所述网页体信息包括网页全文内容。前述的网络蜘蛛垂直数据收集方法,其特征在在于步骤(5)所述客户端解析网页头信息的方法为,
(1)解析网页头信息的返回码,判断服务器是否对步骤(3)的构造请求消息体转向,若转向,则重新构造消息体,并通过客户端发送请求;
(2)解析网页头信息的传输类型及网页体信息的大小,客户端申请预定接收的内存空间准备接收,若超出预定接收的内存空间的大小,则放弃网页体信息;
(3)解析网页头信息的网页类型,进行网页体信息的获取。前述的网络蜘蛛垂直数据收集方法,其特征在在于步骤(5)所述保存符合要求的网页体信息采用天网格式进行存储。前述的一种网络蜘蛛垂直数据收集方法,其特征在在于所述保存符合要求的网页体信息还设有用于破坏后网页体信息的数据可恢复性分析,包括以下步骤,
(1)选取破坏后网页体信息的任一个残存片段;
(2)记录该残存片段中一字符串的位置POS;
(3)找到该字符串后,判断其后的数据是否满足天网格式的存储条件,若存储条件不满足,则从(2)记录的位置POS开始继续查找下一个字符串,重复(3);
(4)若存储条件满足,则假定为正确记录,则下一个记录为正确记录,检查该记录满足天网格式的存储条件,若存储条件不满足,则假定错误,从(2)记录的位置POS开始,继续查找下一个特定字符串,若条件都满足,则继续检查下一个记录是否正确;
(5)若连续三个记录都是正确的,则(2)所找到字符串是正确的记录的开始,然后通过服务器依此提取出全部正确的网页。本发明的有益效果是本发明提供的网络蜘蛛垂直数据收集方法,通过分析搜索引擎的工作原理及其各部分主要功能,抓住如何评价页面的主题相关性和设计高效的爬行策略这两个关键问题,提出基于人的信息专业的定题搜索器,以垂直搜索引擎的核心,采用深度优先的搜索策略设计适合中小型网站专业网页信息获取的网络蜘蛛,并给出此网络蜘蛛的爬行算法使用c++ Builder工具实现程序,另外,为了保证数据库中的信息不重复,还设计了专门用于数据查重的程序以保证资源准确,能够为用户提供更加准确的信息,更好的满足用户的检索要求,且算法准确、稳定、不会引起本地资源耗尽,具有良好的应用前景。
图I是本发明的网络垂直抓取系统的系统框图。图2是本发明的基于Socket的客户端与服务端连接示意图。
具体实施例方式下面将结合说明书附图,对本发明作进一步的说明。如图I所示的网络垂直抓取系统的系统框图,网络垂直抓取系统过程是INTERNET(初始时包含用户指定的起始种子URL类库集合,可以是I个或多个)获得输入,解析URL类库中标明的服务器地址、建立连接、发送请求和接收数据,将获得的网页数据存储在原始网页库,并从其中提取出链接信息放入网页结构库,同时将待抓取的URL放入URL类库,保证
4整个过程的递归进行,直到URL库为空,网络蜘蛛垂直搜索系统提供检索服务,需要保存网页原文,搜集的网页要按照一定的格式存储,便于后续组织和提供服务,本发明基于网络垂直抓取系统的网络蜘蛛垂直数据收集方法,其特征在在于包括以下步骤,
第一步,在客户端上建立URL类库和Page类库
URL类库用于组成消息体,并将消息体发送给Web服务器,Page类库用于解析网页头信息、提取链接信息的Page类;
URL类库为是HTTP,FTP等协议开始的字符串,有了 URL类库后,按照URL类库中标识抓取其所对应的网页,网页信息保存在Page类库中;
第二步,将客户端进程与服务端进程建立连接
将已经从URL类库中获得了服务器的主机名,要能够从服务器上获取网页内容,UDP和TCP的通信采用Socket方法实现,Socket为进程间通信提供了端点,通信由消息组成,消息是在一个进程的Socket与另一个进程Socket之间传送的,如图2所示,一个进程要能够接收消息,它的Socket必须绑定到一个本地端口和本地地址上。发送到指定Internet地址和端口上的消息,只能被绑定到该地址和端口的Socket所属进程接收,连接的建立过程是异步的,一方在监听建立连接的请求,一方将发起建立连接的请求,连接一旦被接受,操作系统(例如UNIX)自动创建新的socket使之与客户端连接成通信的通道,这样服务端就可以在原来的Socket上继续监听其他客户的请求了,连接建立后,双方进程可以通过建立好的连接进行读写操作,这里采用非阻塞方式建立客户端进程与服务端进程的连接;
第三步,客户端上构造请求消息体并发送给服务端;
第四步,客户端获取网页头信息和网页体信息
服务端接受客户端上构造请求消息体后,返回网页头信息和网页体信息,所述网页头信息包括文件类型、大小、最后修改时间内容,所述网页体信息包括网页全文内容。第五步,客户端解析网页头信息,保存符合要求的网页体信息,完成网页数据收集,所述客户端解析网页头信息的方法为,
(1)解析网页头信息的返回码,判断服务器是否对步骤(3)的构造请求消息体转向,若转向,则重新构造消息体,并通过客户端发送请求;
(2)解析网页头信息的传输类型及网页体信息的大小,客户端申请预定接收的内存空间准备接收,若超出预定接收的内存空间的大小,则放弃网页体信息;
(3)解析网页头信息的网页类型,进行网页体信息的获取;
所述保存符合要求的网页体信息采用天网格式进行存储,所述保存符合要求的网页体信息还设有用于破坏后网页体信息的数据可恢复性分析,包括以下步骤,
(1)选取破坏后网页体信息的任一个残存片段;
(2)记录该残存片段中一字符串的位置POS;
(3)找到该字符串后,判断其后的数据是否满足天网格式的存储条件,若存储条件不满足,则从(2)记录的位置POS开始继续查找下一个字符串,重复(3);
(4)若存储条件满足,则假定为正确记录,则下一个记录为正确记录,检查该记录满足天网格式的存储条件,若存储条件不满足,则假定错误,从(2)记录的位置POS开始,继续查找下一个特定字符串“version”,如果条件都满足,则继续检查下一个记录是否正确;
(5)若连续三个记录都是正确的,则(2)所找到字符串是正确的记录的开始,然后通过服务器依此提取出全部正确的网页。综上所述,本发明的通过分析搜索引擎的工作原理及其各部分主要功能,抓住如何评价页面的主题相关性和设计高效的爬行策略这两个关键问题,提出基于人的信息专业的定题搜索器,以垂直搜索引擎的核心,采用深度优先的搜索策略设计适合中小型网站专业网页信息获取的网络蜘蛛,并给出此网络蜘蛛的爬行算法使用c++ Builder工具实现程序,另外,为了保证数据库中的信息不重复,还设计了专门用于数据查重的程序以保证资源准确,能够为用户提供更加准确的信息,更好的满足用户的检索要求,且算法准确、稳定、不会引起本地资源耗尽,具有良好的应用前景。以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界。
权利要求
1.一种网络蜘蛛垂直数据收集方法,其特征在在于包括以下步骤 步骤(I)在客户端上建立URL类库和Page类库URL类库用于组成消息体,并将消息体发送给Web服务器,Page类库用于解析网页头信息、提取链接信息的Page类;步骤(2)将客户端进程与服务端进程建立连接采用非阻塞方式建立客户端进程与服务端进程的连接;步骤(3)客户端上构造请求消息体并发送给服务端;步骤(4)客户端获取网页头信息和网页体信息服务端接受客户端上构造请求消息体后,返回网页头信息和网页体信息;步骤(5)客户端解析网页头信息,保存符合要求的网页体信息,完成网页数据收集。
2.根据权利要求I所述的网络蜘蛛垂直数据收集方法,其特征在在于步骤(4)所述网页头信息包括文件类型、大小、最后修改时间内容,所述网页体信息包括网页全文内容。
3.根据权利要求I所述的网络蜘蛛垂直数据收集方法,其特征在在于步骤(5)所述客户端解析网页头信息的方法为,(1)解析网页头信息的返回码,判断服务器是否对步骤(3)的构造请求消息体转向,若转向,则重新构造消息体,并通过客户端发送请求;(2)解析网页头信息的传输类型及网页体信息的大小,客户端申请预定接收的内存空间准备接收,若超出预定接收的内存空间的大小,则放弃网页体信息;(3)解析网页头信息的网页类型进行网页体信息的获取。
4.根据权利要求I所述的网络蜘蛛垂直数据收集方法,其特征在在于步骤(5)所述保存符合要求的网页体信息采用天网格式进行存储。
5.根据权利要求I或4所述的网络蜘蛛垂直数据收集方法,其特征在在于所述保存符合要求的网页体信息还设有用于破坏后网页体信息的数据可恢复性分析,包括以下步骤,(1)选取破坏后网页体信息的任一个残存片段;(2)记录该残存片段中一字符串的位置POS;(3)找到该字符串后,判断其后的数据是否满足天网格式的存储条件,若存储条件不满足,则从(2)记录的位置POS开始继续查找下一个字符串,重复(3);(4)若存储条件满足,则假定为正确记录,则下一个记录为正确记录,检查该记录满足天网格式的存储条件,若存储条件不满足,则假定错误,从(2)记录的位置POS开始,继续查找下一个特定字符串,若条件都满足,则继续检查下一个记录是否正确;(5)若连续三个记录都是正确的,则(2)所找到字符串是正确的记录的开始,然后通过服务器依此提取出全部正确的网页。
全文摘要
本发明公开了一种网络蜘蛛垂直数据收集方法,包括以下步骤1)在客户端上建立URL类库和Page类库;2)将客户端进程与服务端进程建立连接;3)客户端上构造请求消息体并发送给服务端;4)客户端获取网页头信息和网页体信息;5)客户端解析网页头信息,保存符合要求的网页体信息,完成网页数据收集。本发明的网络蜘蛛垂直数据收集方法,能够为用户提供更加准确的信息,更好的满足用户的检索要求,且算法准确、稳定、不会引起本地资源耗尽,具有良好的应用前景。
文档编号H04L29/08GK102932482SQ201210464709
公开日2013年2月13日 申请日期2012年11月19日 优先权日2012年11月19日
发明者丁国平 申请人:昆山鼎胜数据服务有限公司