当前位置: 首页 > 专利查询>金博专利>正文

一种实现网络爬虫任务的方法技术

技术编号:8489824 阅读:189 留言:0更新日期:2013-03-28 11:40
本发明专利技术公开了一种实现网络爬虫任务的方法,1.初始给所述客户端待爬网页的链接地址;2.客户端将待爬网页的链接地址封装成任务请求发送到服务器;3.服务器向待爬取页面发送HTTP请求,并把请求到的多信息返回客户端;4.客户端接收信息,并对信息进行处理:5.重复上述过程,依次完成待爬列表中的网页爬取。本发明专利技术为爬取不同的网站内容提供了一个通用的网络爬虫框架,通过使用本方法可以快速完成编写用于爬取某个特定网站的爬虫。这种方法极大降低了开发人员的开发难度,缩短了开发周期。由于这种方法是建立在分布式网络爬虫框架的基础之上,因此爬取网站的速度也可以得到保证。本发明专利技术方法可用于医疗信息系统。

【技术实现步骤摘要】

本专利技术涉及网络爬虫
,更具体地说,涉及网络爬虫任务的实现方法,主要用于医疗信息系统。
技术介绍
网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件后终止运行。目前实用的网络爬虫程序通常采用分布式,分布式网络爬虫包含多个爬虫,每个爬虫需要完成的任务和单个的爬行器类似,它们从互联网上下载网页,并把网页保存在本地的磁盘,从中抽取URL并沿着这些URL的指向继续爬行。由于并行爬行器需要分割下载任务,可能爬虫会将自己抽取的URL发送给其他爬虫。这些爬虫可能分布在同一个局域网之中,或者分散在不同的地理位置。网络爬虫的任务分配没有固定的模式,不同的爬虫的任务分配方法也都不尽相同。任务分配的首要前提是不重复分配任务,重复的任务会影响程序的效率。当然,任务分配也必须保证不能漏掉任务。一个好的任务分配应该根据情况采取不同的分配方式,以达到最优效果。现有技术的网络爬虫通常是针对预先设定的特定网站设计的,当目标网站及其爬取参数设定好后难以修改,如需要爬取其他网站内容时,通常需要重新设计网络爬虫程序。
技术实现思路
本专利技术目的在于提供一种高效的建立爬虫任务的方法,通过设置客户端的配置参数,灵活修改解析器、执行器的部分代码就可以实现爬取所需的信息内容。从而本专利技术实现了一个通用的网络爬虫任务框架,按照本专利技术的方法,只需要简单修改即可完整特定网站的网络爬虫任务,使得网络爬虫系统的可扩展性大大增强。为了达到上述目的,本专利技术提供了,硬件部分包括互联网中的服务器和客户端,所述客户端包括解析器、执行器。其中,所述解析器,利用正则表达式从待爬取的网站中解析出下一层待爬网页链接地址。所述执行器,用于将爬取的信息存入存储设备,以及为待爬网页链接地址设置爬取顺序的优先级。客户端,用于向所述服务器发送新任务,向数据库中添加未完成任务信息;以及从所述服务器的响应队列中请求已经从网站上爬取到的内容,在所述数据库中标记对应的任务已经完成;解析得到的响应,如果需要继续爬取,则将待爬网页链接地址封装成任务请求发送到所述服务器并在所述数据库中记录,否则将响应到的内容保存;此外,用于从数据库中读取未完成的任务,重新发送给所述服务器。本专利技术具体实现过程包括如下步骤Step1、初始给所述客户端一个或多个待爬网页的链接地址或客户端从数据库中取出一个最优待爬网页的链接地址Step 2、所述客户端将待爬网页的链接地址封装成任务请求发送到所述服务器;Step 3、所述服务器向待爬取页面发送HTTP请求,并把请求到的多信息返回给相应的所述客户端。Step4、所述客户端接收所述多信息,并对所述多信息做以下操作Step41、所述执行器将所述多信息中所需要的信息存储到硬盘;St印42、所述解析器利用正则表达式从所述多信息解析出下一层待爬网页链接地址;St印43、所述执行器为S42中所述下一层待爬网页链接地址设置爬取顺序优先级,Step44、将所述下一层待爬网页链接地址加入到所述数据库中的待爬列表中;Step 5、重复上述St印1-4,依次完成所述数据库中的待爬列表中的网页爬取。其中,步骤Step4中,所述多信息是由服务器返回到所有信息,既包括需要爬取的有用信息,也包括无用信息,以及下一层待爬取网页的链接地址等信息。而所述多信息中所需要的息是指需要爬取的有用息。优选方式下,上述Step43的具体过程为在网络爬虫运行之前,根据链接的层级人工为每一层级的待爬网页链接地址分别分配一个优先级区间;而后,网络爬虫运行时,所述执行器为待爬网页链接地址在其优先级区间中随机分配一个优先级值,从而在所述数据库中的待爬列表中完成了最优待爬网页的链接地址的设定。 本专利技术为爬取不同的网站内容提供了 一个通用的网络爬虫框架,通过使用本方法可以快速完成编写用于爬取某个特定网站的爬虫。使用这种办法,只需要重新编写客户端的解析器、执行器的少量代码,无需改变服务器的代码就可以实现爬取一个全新网站的网络爬虫。因而这种方法极大降低了开发人员的开发难度,缩短了开发周期。由于这种方法是建立在分布式网络爬虫框架的基础之上,因此爬取网站的速度也可以得到保证。本专利技术可用于医疗信息系统。附图说明图1是本专利技术网络爬虫的实施的流程示意图;图2是客户端与服务器互动的流程示意图;图3是本专利技术网络爬虫用于医师信息软件系统中一个待爬网页的信息情况示意图;图4是针对图3网页源代码的情况示意图。具体实施例方式如图1所示,本专利技术一种高效的建立爬虫任务的方法,包括以下步骤A、根据所需获取信息的互联网地址生成编写存储不同页面链接相关信息数据的模板;B、根据所需获取信息的链接地址特点编写提取相应链接的解析器;C、编写执行器,同时设定爬取不同页面的优先级;D、启动服务器和客户端,爬取网站内容;E、如爬虫运行意外终止,重新启动服务器、客户端,客户端可从数据库中获取未完成任务队列中的任务,实现断点续传。实施例一种用于医师数据库系统的网络爬虫任务建立方法,具体指一种用于爬取不同网站时快速实现爬取相应网站的快速、稳定网络爬虫的方法。具体实施方式如下A、在步骤Sll中,编写存储页面链接地址的模板。本步骤为每个需要爬取的页面建立一个存储页面链接地址信息的模板,该模板相当于一个页面地址空白记录本,可用于保存爬取页面的链接地址以及页面所在深度的信息。例如,万方论文详细信息页面地址链接为·(http: / / d_wanfangdata.com.cn / Periodical_ahzylczz201203001. aspx),其页面深度为3,那么就模板中存储的内容为上述地址链接及深度值3。B、在步骤S12中,编写链接解析器。首先,建立正则表达式,分析需要爬取的网站,并根据需要爬取的每个页面链接地址的特点,编写一个可以从网页内容中提取出这一类页面链接地址的正则表达式;其次,编写链接解析器的具体执行方法。链接解析器的输入为一个表示网页内容的字符串,解析器使用正则表达式从网页内容中提取出符合需求的链接,将这些链接存储在步骤A编写的模板中并作为返回结果返回。例如,要编写从万方论文列表的网页内容中提取指向论文详细信息页面的链接解析器,首先需要编写一个提取链接的正则表达式"〈ahref=,( <Url>http: / / d. wanfangdata. com. cn / Periodical」+ \·aspx),X <Name>. + ) </a>〃,然后在解析器中编写方法根据正则表达式提取出链接。图3是万方论文列表一个页面,图4是这个页面的源代码。源代码作为输入,使用解析器进行解析,将网页内容中显示五篇文章的链接提取出来,提取得到的链接分别是I]· http: / / d. wanfangdata. com. cn / Periodical_ahzylczz201203001. aspx2]. http: / / d. wanfangdata. com.cn / Periodica本文档来自技高网...

【技术保护点】
一种实现网络爬虫任务的方法,其特征在于,硬件部分包括互联网中的服务器和客户端,所述客户端包括解析器和执行器;所述解析器,利用正则表达式从待爬取的网站中解析出下一层待爬网页链接地址;所述执行器,用于将爬取的信息存入存储设备,以及为待爬网页链接地址设置爬取顺序的优先级;具体实现过程包括如下步骤:S1、初始给所述客户端一个或多个待爬网页的链接地址或客户端从数据库中取出一个最优待爬网页的链接地址;S2、所述客户端将待爬网页的链接地址封装成任务请求发送到所述服务器;S3、所述服务器向待爬取页面发送HTTP请求,并把请求到的多信息返回给相应的所述客户端。S4、所述客户端接收所述多信息,并对所述多信息做以下操作:S41、所述执行器将所述多信息中所需要的信息存储到硬盘;S42、所述解析器利用正则表达式从所述多信息解析出下一层待爬网页链接地址;S43、所述执行器为S42中所述下一层待爬网页链接地址设置爬取顺序优先级;S44、将所述下一层待爬网页链接地址加入到所述数据库中的待爬列表中;S5、重复上述过程,依次完成所述数据库中的待爬列表中的网页爬取。

【技术特征摘要】

【专利技术属性】
技术研发人员:金博
申请(专利权)人:金博
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1