基于直线生成算法的爬虫方法及爬虫系统转让专利

申请号 : CN201410839970.0

文献号 : CN104462580B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 郑小龙梅蓓

申请人 : 上海携程商务有限公司

摘要 :

本发明公开了一种基于直线生成算法的爬虫方法及爬虫系统,爬虫方法包括以下步骤:S1、初始化URL索引;S2、采用直线生成算法进行程序动作打包;S3、使用参数构造URL列表;S4、分析网页页面并进行网页数据抓取。本发明通过将直线方程式算法运用至网络爬虫结构,可以提高爬虫的数据读取速度,减少数据传输过程中的时间,提高搜索速度。

权利要求 :

1.一种基于直线生成算法的爬虫方法,其特征在于,包括以下步骤:S1、初始化URL索引;

S2、采用直线生成算法进行程序动作打包;

S3、使用参数构造URL列表;

S4、分析网页页面并进行网页数据抓取;

步骤S2包括:

S21、将网页数据虚拟为二维坐标系中的数据点;

S22、选定一URL生成点及一数据结束点;

S23、采用直线生成算法在所述URL生成点及所述数据结束点之间虚拟一条直线;

步骤S4中基于步骤S23中虚拟出的直线进行网页数据抓取。

2.如权利要求1所述的爬虫方法,其特征在于,所述直线生成算法为两步算法。

3.一种基于直线生成算法的爬虫系统,其特征在于,包括:一初始化模块,用于初始化URL索引;

一打包模块,用于采用直线生成算法进行程序动作打包;

一列表构造模块,用于使用参数构造URL列表;

一抓取模块,用于分析网页页面并进行网页数据抓取。

4.如权利要求3所述的爬虫系统,其特征在于,所述打包模块包括一数据点虚拟单元、一数据点选定单元以及一直线虚拟单元;所述数据点虚拟单元用于将网页数据虚拟为二维坐标系中的数据点,所述数据点选定单元用于选定一URL生成点及一数据结束点,所述直线虚拟单元用于采用直线生成算法在所述URL生成点及所述数据结束点之间虚拟一条直线;

所述抓取单元用于基于所述直线虚拟单元虚拟出的直线进行网页数据抓取。

5.如权利要求4所述的爬虫系统,其特征在于,所述直线生成算法为两步算法。

说明书 :

基于直线生成算法的爬虫方法及爬虫系统

技术领域

[0001] 本发明涉及一种基于直线生成算法的爬虫方法及爬虫系统。

背景技术

[0002] 在万维网飞速发展的网络背景下,搜索引擎在人们的生活工作中无疑扮演着重要的角色,而网络爬虫则是搜索引擎技术的最基础部分。
[0003] 在搜索引擎成为主流检索工具的今天,互联网上的网络爬虫各式各样,但爬虫爬取网页的基本步骤大致相同:
[0004] 1)人工给定一个URL(统一资源定位符)作为入口,从这里开始爬取。
[0005] 万维网的可视图呈蝴蝶型,网络爬虫一般从蝴蝶型左边结构出发。这里有一些门户网站的主页,而门户网站中包含大量有价值的链接。
[0006] 2)用运行队列和完成队列来保存不同状态的链接。
[0007] 对于大型数据量而言,内存中的队列是不够的,通常采用数据库模拟队列。用这种方法既可以进行海量的数据抓取,还可以拥有断点续抓功能。
[0008] 3)线程从运行队列读取队首URL,如果存在,则继续执行,反之则停止爬取。
[0009] 4)每处理完一个URL,将其放入完成队列,防止重复访问。
[0010] 5)每次抓取网页之后分析其中的URL(URL是字符串形式,功能类似指针),将经过过滤的合法链接写入运行队列,等待提取。
[0011] 6)重复步骤3)、4)、5)。
[0012] 传统的爬虫逻辑的算法流程图如图1所示,通过传统的爬虫逻辑与算法,效率十分低下,运行过程中也存在着占内存的问题。

发明内容

[0013] 本发明要解决的技术问题是为了克服现有技术中传统的爬虫逻辑与算法效率低下、运行过程中占内存的缺陷,提供一种基于直线生成算法的爬虫方法及爬虫系统。
[0014] 本发明是通过下述技术方案来解决上述技术问题的:
[0015] 本发明提供了一种基于直线生成算法的爬虫方法,其特点在于,包括以下步骤:
[0016] S1、初始化URL索引;
[0017] S2、采用直线生成算法进行程序动作打包;
[0018] S3、使用参数构造URL列表;
[0019] S4、分析网页页面并进行网页数据抓取。
[0020] 较佳地,步骤S2包括:
[0021] S21、将网页数据虚拟为二维坐标系中的数据点;
[0022] S22、选定一URL生成点及一数据结束点;
[0023] S23、采用直线生成算法在所述URL生成点及所述数据结束点之间虚拟一条直线;
[0024] 步骤S4中基于步骤S23中虚拟出的直线进行网页数据抓取。
[0025] 较佳地,所述直线生成算法为两步算法。
[0026] 本发明的目的在于还提供了一种基于直线生成算法的爬虫系统,其特点在于,包括:
[0027] 一初始化模块,用于初始化URL索引;
[0028] 一打包模块,用于采用直线生成算法进行程序动作打包;
[0029] 一列表构造模块,用于使用参数构造URL列表;
[0030] 一抓取模块,用于分析网页页面并进行网页数据抓取。
[0031] 较佳地,所述打包模块包括一数据点虚拟单元、一数据点选定单元以及一直线虚拟单元;所述数据点虚拟单元用于将网页数据虚拟为二维坐标系中的数据点,所述数据点选定单元用于选定一URL生成点及一数据结束点,所述直线虚拟单元用于采用直线生成算法在所述URL生成点及所述数据结束点之间虚拟一条直线;
[0032] 所述抓取单元用于基于所述直线虚拟单元虚拟出的直线进行网页数据抓取。
[0033] 较佳地,所述直线生成算法为两步算法。
[0034] 本发明的积极进步效果在于:本发明通过将直线方程式算法运用至网络爬虫结构,可以提高爬虫的数据读取速度,减少数据传输过程中的时间,提高搜索速度。

附图说明

[0035] 图1为传统的爬虫逻辑的算法流程图。
[0036] 图2为本发明一实施例的基于直线生成算法的爬虫方法的流程图。
[0037] 图3为本发明一实施例的基于直线生成算法的爬虫方法中程序动作打包步骤的流程图。
[0038] 图4为本发明一实施例的基于直线生成算法的爬虫方法中直线在点阵设备上的示意图。
[0039] 图5为本发明一实施例的基于直线生成算法的爬虫方法中两步算法的示意图。
[0040] 图6为本发明一实施例的基于直线生成算法的爬虫系统的模块示意图。

具体实施方式

[0041] 下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
[0042] 如图2所示,本发明的基于直线生成算法的爬虫方法包括以下步骤:
[0043] 步骤101、初始化URL索引。
[0044] 步骤102、采用直线生成算法进行程序动作打包。
[0045] 步骤103、使用参数构造URL列表。
[0046] 步骤104、分析网页页面并进行网页数据抓取。
[0047] 如图3所示,程序动作打包步骤具体包括:
[0048] 步骤1021、将网页数据虚拟为二维坐标系中的数据点。
[0049] 步骤1022、选定一URL生成点及一数据结束点。
[0050] 步骤1023、采用直线生成算法在所述URL生成点及所述数据结束点之间虚拟一条直线。
[0051] 而在步骤104中则基于步骤1023中虚拟出的直线进行网页数据抓取。
[0052] 在本发明中将直线生成算法运用到了网络爬虫结构中,在数学范畴内的直线是由没有宽度的点组成的集合,但是在计算机图形学的范畴内,所有的图形包括直线都是输出或显示在点阵设备上的,被成为点阵图形或光栅图形。以显示器为例,现实中常见的显示器(包括CRT(阴极射线管)显示器和液晶显示器)都可以看成由各种颜色和灰度值的像素点组成的象素矩阵,这些点是有大小的,而且位置固定,因此只能近似的显示各种图形,直线在点阵设备上的表现形式参见图4。
[0053] 计算机图形学中的直线生成算法,其实包含了两层意思,一层是在解析几何空间中根据坐标构造出平面直线,另一层就是在光栅显示器之类的点阵设备上输出一个最逼近于图形的象素直线,而这就是常说的光栅图形扫描转换。本发明中的直线生成算法具体为两步算法,两步算法是在生成直线的过程中,每次判断都生成两个点的直线生成算法,本实施例的两步算法的示意图具体参见图5,以图5为例,首先将网页数据虚拟为相应的坐标点(即图5中的P、A、B、C、D、E),其中默认P点为URL生成点,E点为数据结束点,若按照传统的爬虫逻辑,需要依次从点对点判断逻辑并进行索引抓取,具体路径为以下几种情况:
[0054] 1、P-A-B-C-E
[0055] 2、P-A-D-C-E
[0056] 3、P-A-B-C-D-E
[0057] 4、P-A-D-E
[0058] 以上几种情况为原始的爬虫逻辑,可见采用传统的爬虫逻辑需要依次遍历各个点,效率低且占内存。
[0059] 而本发明的直线生成算法则可以在P点和E点之间虚拟出一条直线,或者在点与点之间虚拟直线,通过线连接点的方式减少运算步骤,增加运算效率。本发明的具体路径依次如下:
[0060] 1、P-E
[0061] 2、P-B-E
[0062] 3、P-D-E……
[0063] 本实施例还要求保护一种基于直线生成算法的爬虫系统,如图6所示,所述爬虫系统包括一初始化模块1、一打包模块2、一列表构造模块3及一抓取模块4,所述初始化模块1用于初始化URL索引;所述打包模块2用于采用直线生成算法进行程序动作打包;所述列表构造模块3用于使用参数构造URL列表;所述抓取模块4用于分析网页页面并进行网页数据抓取。其中,所述打包模块2包括一数据点虚拟单元21、一数据点选定单元22以及一直线虚拟单元23;所述数据点虚拟单元21用于将网页数据虚拟为二维坐标系中的数据点,所述数据点选定单元22用于选定一URL生成点及一数据结束点,所述直线虚拟单元23用于采用直线生成算法在所述URL生成点及所述数据结束点之间虚拟一条直线;所述抓取单元4则基于所述直线虚拟单元23虚拟出的直线进行网页数据抓取。其中,所述直线生成算法为两步算法。
[0064] 虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。