资源预览内容
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
网上新闻信息定期自动抓取方法专利名称:网上新闻信息定期自动抓取方法技术领域:本发明涉及网上特定信息自动抓取,特别涉及一种定期自动抓取网上新闻信息的方法。背景技术:随着科技的飞速发展,人类社会生活各个领域信息交流越来越离不开网络技术,人们可以通过互联网获取特定信息,并经过整理,形成为特定人群阅读服务。比如网上新闻类信息(就是同类的新闻信息),网站首先提供一个含有我们感兴趣新闻目录的网页(也称新闻目录网页,如图I所示),然后逐个打开新闻目录条,进一步获取新闻文本网页(如图2所示),对于有用的新闻文本信息下载保存,方便其他任务使用,如将下载的信息发布在本单位网站,或者进一步整理后提供给有关部11。目前已经有很多关于获取网上信息技术方案,但对于新闻类信息获取,还没有能定期自动启动抓取网上特定信息,并自动判定更新。发明内容为了弥补以上步足,本发明提供一种网上新闻信息定期自动抓取方法,能定期启 动网上新闻信息抓取,并可避免重复获取新闻信息,节省空间,提高效率。本发明的技术方案是这样实现的一种网上新闻信息定期自动抓取方法,包括以下步骤第一步,根据待获取的新闻目录网页中的数据结构特征和源代码语法规则建立新闻目录匹配模型;第二步,根据待获取的新闻文本网页中的数据结构特征和源代码语法规则建立新闻文本匹配模型;第三步,基于MS SQL Server Agent任务调度管理器,创建任务组,该任务组为定期调动并依次执行如下模块a)获取新闻目录网页模块,就是根据该新闻目录网页的URL地址获取该网页文件的新闻目录源代码;b)抓取及保存新闻地址信息模块,就是根据该新闻目录匹配模型,抓取该新闻目录源代码中的新闻标题和新闻链接地址,保存于新闻目录信息列表,并置该新闻目录信息列表中相应的更新标识为打开状态;c)更新新闻目录列表模块,就是屏蔽该新闻目录信息列表中具有重复新闻标题且更新标识为打开的新闻目录信息记录;d)获取新闻文本网页模块,就是依次根据该新闻目录信息列表中更新标识打开的新闻链接地址,获取相应新闻网页文件中的新闻文本源代码,并根据该新闻文本匹配模型,抓取该新闻文本源代码中相应的新闻文本信息,并将该新闻文本信息以该相应新闻标题为文本文件名,保存于新闻文本目录,同时将该新闻目录信息列表中相应更新标识置为关闭状态。作为本发明的进一步改进,该新闻目录匹配模型包括用于获取新闻目录块的表格结构识别组、 用于获取该新闻目录块中新闻目录条的表行结构识别组,以及用于获取该新闻目录条中标题和链接地址的单元格结构识别组。作为本发明的进一步改进,该新闻文本匹配模型包括用于获取新闻信息块的表格结构识别组、用于获取该新闻信息块中新闻正文信息条的表行结构识别组,以及用于获取该新闻正文信息条中文本信息的单元格结构识别组。本发明的有益技术效果是所述新闻目录匹配模型根据待获取的新闻目录网页中的数据结构特征和源代码语法规则建立,所述新闻文本匹配模型根据待获取的新闻文本网页中的数据结构特征和源代码语法规则建立,由MS SQL Server Agent任务调度管理器,创建任务组,并定期调动并依次执行获取新闻目录网页模块、抓取及保存新闻地址信息模块、更新新闻目录列表模块和获取新闻文本网页模块,由此完成获取新闻目录网页中全部新闻标题和链接地址,保存到新闻目录列表中,然后根据该新闻目录地址列表中每一新闻标题的链接地址获取相应新闻文本网页,在该新闻文本网页中获取需要的新闻文本信息,并保存到新闻文本目录中,所述更新新闻目录列表模块就是屏蔽该新闻目录信息列表中具有重复新闻标题且更新标识为打开的新闻目录信息记录,防止重复下载。图I为本发明的操作流程图;图2为实施例中新闻目录网页局部示意图(仅显示待抓取新闻目录);图3为图2中新闻目录块的源代码;图4为实施例中新闻文本网页局部示意图(仅显示待抓取新闻文本信息);图5为图4中新闻正文信息条的源代码;图6为本发明中所述新闻文本目录的示意图;图7为本发明中所述文本信息示意图。具体实施例方式网页文件包含标题、文本、图像、链接、表格等数据结构特征,网上新闻类网页通常由新闻目录网页和新闻文本网页组成,如图2所示,该新闻目录网页包含同类别的新闻目录块,该新闻目录块的源代码包含一个表格结构,而每一条新闻目录中部分源代码包含该表格中的一个表行结构,而该新闻目录中新闻标题和链接地址就由该表行中一个单元格结构确定,由该链接地址指引到对应的新闻文本网页;如图4所示,该新闻文本网页包含有对应的新闻文本信息,该新闻文本信息由新闻标题和新闻正文信息组成,而该新闻正文信息的源代码含有一个表格结构,每一段正文信息就对应其中一个表行结构,本发明基于这样网页文件结构提出的。下面结合附图I、图2、图3、图4、图5、图6和图7,以及实施例对本发明的技术方案作进一步描述一种网上新闻信息定期自动抓取方法,实施如下步骤第一步,根据待获取的新闻目录网页中的数据结构特征和源代码语法规则建立新闻目录匹配模型,该新闻目录匹配模型包括用于获取新闻目录块的表格结构识别组、用于获取该新闻目录中新闻目录条的表行结构识别组,以及用于获取该新闻目录条中标题和链接地址的单元格结构识别组;如跟踪江苏省科技厅网站中的科技动态之县市创新(http:/www. jstd. gov. cn/kjdt/hyxw/index, html)部分网页(如图I所示)。借助网页浏览器(例如Windows系统自带的IE浏览器)具备的“查看源代码文件”功能,可以获取网页文件的源代码,该科技动态之县市创新部分网页的源代码为如图3所示,图中的“”为添加的序号,不属于源代码部分,以下如此。获取上述新闻目录块的表结构识别组为图3中序号Al和A23的下划虚线部分。获取该新闻目录块中新闻目录条(如第一条目录)的表行结构识别组为图3中序号A2和A6的下划虚线部分。 获取该新闻目录条(如第一条目录)中标题和链接地址的单元格结构识别组为图3中序号A4的下划虚线部分,该标题信息由href=确定,而该链接地址信息由title=确定。上述表格中由多个表行组成,每一表行有一个新闻标题和链接地址。第二步,根据待获取的新闻文本网页中的数据结构特征和源代码语法规则建立新闻文本匹配模型,该新闻文本匹配模型包括用于获取新闻信息块的表格结构识别组、用于获取该新闻信息块中新闻正文信息条的表行结构识别组,以及用于获取该新闻正文信息条中文本信息的单元格结构识别组;如继续跟踪江苏省科技厅网站中科技动态之县市创新中的新闻目录“2012中国陶都(宜兴)金秋经贸洽谈会隆重开幕”(http:/www. jstd. gov. cn/kjdt/sxdt/20121019/14391009342. html)部分网页(如图4所示),该部分网页的源代码如图5所示。获取该新闻文本信息块的表格结构识别组为图5中序号BI和B14的下划虚线部分。获取该新闻正文信息条的表行结构识别组为图5中序号B2和B6的下划虚线部分。获取该新闻正文信息条中文本信息的单元格结构识别组为图5中序号B3和B5的下划虚线部分。第三步,基于MS SQL Server Agent任务调度管理器,创建任务组,该任务组为定期调动并依次执行如下模块a)获取新闻地址网页模块就是根据该新闻地址网页的URL地址获取该网页文件的新闻地址源代码;网页文件下载可以基于Internet Transfer控件实现,Internet Transfer控件是一个ActiveX控件,该控件支持超文本传输协议(HTTP)和文件传输协议(FTP),WEB正是基于传输协议。该控件拥有几个基本属性和基本方法,还有一个基本事件Stat eChanged。其中方法Execute和OpenURL都用于实现网络通信,方法Execute实现异步传输,而方法OpenURL实现同步传输。采用异步传输时在传输信息的过程中,程序可以执行其它代码。采用同步传输时程序直到传输过程结束后执行请求同步方式以下的代码。利用VB调用Internet Transfer控件实现网页下载,获取新闻地址网页模块可以通过如下程序实现Option ExplicitDim Web As StringDim downloadpage As StringDim downIoadURL As String-Private Sub Form Load 0 start htt.p:/ ww. jstd, gov, cn/kjdt/hyxw/index. html ,e:/download/downloadpage. txt End Sub Private Sub start (strURI, As String, Stri7I I e As String)Dim b As StringDim fso, f Set fso = CreateObject(Scripting. Fi IeSystemObject)Tf fso. FileExists(strFiIe) Thenfso. DcIctcFiIc (strPiTe)End If b = Inct I. OpenURL(strURL, icString) Set f = fso. CreateTextFi Ie(strFiIe, Ti ul) f. write b inet丨.CancelSet fso = NothingEnd Sub经过VB编译生成该获取新闻地址网页模块的执行文件,该文件可以在Windows系统直接执行,这样便于采用MS SQL Server Agent任务调度启动。本发明中其他模块也利用上述方法完成相应执行文件。b)抓取及保存新闻地址信息模块,就是根据该新闻地址匹配模型,抓取该新闻地址源代码中的新闻标题和新闻链接地址,保存于新闻地址列表,并置该新闻地址列表中相 应的更新标识为打开状态;该新闻地址列表用于保存新闻目录记录,包括新闻标题、该新闻标题指引的链接地址以及判定新闻内容是否需要更新的更新标识字段。c)更新新闻地址列表模块,就是屏蔽该新闻地址列表中具有重复新闻标题且更新标识为打开的新闻地址信息记录;该新闻地址列表保存了上次执行后下载的新闻目录信息,如果本次获取的新闻标题与已有的新闻标题相同,说明该标题下的新闻文本已经下载,通过屏蔽该新闻标题记录,减少不必要新闻文本下载,提高运行效率。d)获取新闻文本网页模块,就是依次根据该新闻地址列表中更新标识打开的新闻链接地址,获取相应网页文件中的新闻文本源代码,并根据该新闻文本匹配模型,抓取该新闻文本源代码中相应的新闻文本信息,并将该新闻文本信息以该相应新闻标题为文本文件名(如图7所示),保存于新闻文本目录(如图6所示),同时将该新闻地址列表中相应更新标识置为关闭状态。MS SQL Server Agent是SQL Server携带的一个强有力的辅助应用程序。SQLServer正是依靠该应用程序来实现任务调度功能的。该应用程序使得系统管理员能够在服务器上调度周期性的活动。为了要实现定期启动网站自动更新,在打开MS SQL Enterprise Manager时首先创建新任务(New Jobs),其中SQL Server任务类型选择CmdExec,这类任务将打开Window的命令解释器,然后在解释器里执行命令,因此只要在命令框里键入由VB生成的自动抓取程序名及路径(即是a)获取新闻地址网页模块、b)抓取及保存新闻地址信息模块、c)更新新闻地址列表模块以及d)获取新闻文本网页模块)。最后为运行的作业创建日程表(Schedule) 0在创建任务调度时可以选择每周(或每月)定期启动。本发明提供了一种网上新闻信息定期自动抓取的方法,对于新闻目录网页具有多页时,可以在该获取新闻地址网页模块之前,增加判断新闻目录网页显示页数模块来解决。权利要求1.一种网上新闻信息定期自动抓取方法,其特征在于,包括以下步骤 第一步,根据待获取的新闻目录网页
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号