首页> 中国专利> 基于直线生成算法的爬虫方法及爬虫系统

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

摘要

本发明公开了一种基于直线生成算法的爬虫方法及爬虫系统,爬虫方法包括以下步骤:S

著录项

  • 公开/公告号CN104462580A

    专利类型发明专利

  • 公开/公告日2015-03-25

    原文格式PDF

  • 申请/专利权人 携程计算机技术(上海)有限公司;

    申请/专利号CN201410839970.0

  • 发明设计人 郑小龙;梅蓓;

    申请日2014-12-24

  • 分类号G06F17/30;

  • 代理机构上海弼兴律师事务所;

  • 代理人薛琦

  • 地址 200335 上海市长宁区福泉路99号携程网络技术大楼

  • 入库时间 2023-12-18 08:05:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-09-19

    授权

    授权

  • 2016-03-02

    专利申请权的转移 IPC(主分类):G06F17/30 登记生效日:20160205 变更前: 变更后: 申请日:20141224

    专利申请权、专利权的转移

  • 2015-04-22

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20141224

    实质审查的生效

  • 2015-03-25

    公开

    公开

说明书

技术领域

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

背景技术

在万维网飞速发展的网络背景下,搜索引擎在人们的生活工作中无疑扮 演着重要的角色,而网络爬虫则是搜索引擎技术的最基础部分。

在搜索引擎成为主流检索工具的今天,互联网上的网络爬虫各式各样, 但爬虫爬取网页的基本步骤大致相同:

1)人工给定一个URL(统一资源定位符)作为入口,从这里开始爬取。

万维网的可视图呈蝴蝶型,网络爬虫一般从蝴蝶型左边结构出发。这里 有一些门户网站的主页,而门户网站中包含大量有价值的链接。

2)用运行队列和完成队列来保存不同状态的链接。

对于大型数据量而言,内存中的队列是不够的,通常采用数据库模拟队 列。用这种方法既可以进行海量的数据抓取,还可以拥有断点续抓功能。

3)线程从运行队列读取队首URL,如果存在,则继续执行,反之则停 止爬取。

4)每处理完一个URL,将其放入完成队列,防止重复访问。

5)每次抓取网页之后分析其中的URL(URL是字符串形式,功能类似 指针),将经过过滤的合法链接写入运行队列,等待提取。

6)重复步骤3)、4)、5)。

传统的爬虫逻辑的算法流程图如图1所示,通过传统的爬虫逻辑与算法, 效率十分低下,运行过程中也存在着占内存的问题。

发明内容

本发明要解决的技术问题是为了克服现有技术中传统的爬虫逻辑与算 法效率低下、运行过程中占内存的缺陷,提供一种基于直线生成算法的爬虫 方法及爬虫系统。

本发明是通过下述技术方案来解决上述技术问题的:

本发明提供了一种基于直线生成算法的爬虫方法,其特点在于,包括以 下步骤:

S1、初始化URL索引;

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

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

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

较佳地,步骤S2包括:

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

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

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

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

较佳地,所述直线生成算法为两步算法。

本发明的目的在于还提供了一种基于直线生成算法的爬虫系统,其特点 在于,包括:

一初始化模块,用于初始化URL索引;

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

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

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

较佳地,所述打包模块包括一数据点虚拟单元、一数据点选定单元以及 一直线虚拟单元;所述数据点虚拟单元用于将网页数据虚拟为二维坐标系中 的数据点,所述数据点选定单元用于选定一URL生成点及一数据结束点, 所述直线虚拟单元用于采用直线生成算法在所述URL生成点及所述数据结 束点之间虚拟一条直线;

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

较佳地,所述直线生成算法为两步算法。

本发明的积极进步效果在于:本发明通过将直线方程式算法运用至网络 爬虫结构,可以提高爬虫的数据读取速度,减少数据传输过程中的时间,提 高搜索速度。

附图说明

图1为传统的爬虫逻辑的算法流程图。

图2为本发明一实施例的基于直线生成算法的爬虫方法的流程图。

图3为本发明一实施例的基于直线生成算法的爬虫方法中程序动作打包 步骤的流程图。

图4为本发明一实施例的基于直线生成算法的爬虫方法中直线在点阵设 备上的示意图。

图5为本发明一实施例的基于直线生成算法的爬虫方法中两步算法的示 意图。

图6为本发明一实施例的基于直线生成算法的爬虫系统的模块示意图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在 所述的实施例范围之中。

如图2所示,本发明的基于直线生成算法的爬虫方法包括以下步骤:

步骤101、初始化URL索引。

步骤102、采用直线生成算法进行程序动作打包。

步骤103、使用参数构造URL列表。

步骤104、分析网页页面并进行网页数据抓取。

如图3所示,程序动作打包步骤具体包括:

步骤1021、将网页数据虚拟为二维坐标系中的数据点。

步骤1022、选定一URL生成点及一数据结束点。

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

而在步骤104中则基于步骤1023中虚拟出的直线进行网页数据抓取。

在本发明中将直线生成算法运用到了网络爬虫结构中,在数学范畴内的 直线是由没有宽度的点组成的集合,但是在计算机图形学的范畴内,所有的 图形包括直线都是输出或显示在点阵设备上的,被成为点阵图形或光栅图 形。以显示器为例,现实中常见的显示器(包括CRT(阴极射线管)显示器 和液晶显示器)都可以看成由各种颜色和灰度值的像素点组成的象素矩阵, 这些点是有大小的,而且位置固定,因此只能近似的显示各种图形,直线在 点阵设备上的表现形式参见图4。

计算机图形学中的直线生成算法,其实包含了两层意思,一层是在解析 几何空间中根据坐标构造出平面直线,另一层就是在光栅显示器之类的点阵 设备上输出一个最逼近于图形的象素直线,而这就是常说的光栅图形扫描转 换。本发明中的直线生成算法具体为两步算法,两步算法是在生成直线的过 程中,每次判断都生成两个点的直线生成算法,本实施例的两步算法的示意 图具体参见图5,以图5为例,首先将网页数据虚拟为相应的坐标点(即图 5中的P、A、B、C、D、E),其中默认P点为URL生成点,E点为数据结 束点,若按照传统的爬虫逻辑,需要依次从点对点判断逻辑并进行索引抓取, 具体路径为以下几种情况:

1、P-A-B-C-E

2、P-A-D-C-E

3、P-A-B-C-D-E

4、P-A-D-E

以上几种情况为原始的爬虫逻辑,可见采用传统的爬虫逻辑需要依次遍 历各个点,效率低且占内存。

而本发明的直线生成算法则可以在P点和E点之间虚拟出一条直线,或 者在点与点之间虚拟直线,通过线连接点的方式减少运算步骤,增加运算效 率。本发明的具体路径依次如下:

1、P-E

2、P-B-E

3、P-D-E……

本实施例还要求保护一种基于直线生成算法的爬虫系统,如图6所示, 所述爬虫系统包括一初始化模块1、一打包模块2、一列表构造模块3及一 抓取模块4,所述初始化模块1用于初始化URL索引;所述打包模块2用于 采用直线生成算法进行程序动作打包;所述列表构造模块3用于使用参数构 造URL列表;所述抓取模块4用于分析网页页面并进行网页数据抓取。其 中,所述打包模块2包括一数据点虚拟单元21、一数据点选定单元22以及 一直线虚拟单元23;所述数据点虚拟单元21用于将网页数据虚拟为二维坐 标系中的数据点,所述数据点选定单元22用于选定一URL生成点及一数据 结束点,所述直线虚拟单元23用于采用直线生成算法在所述URL生成点及 所述数据结束点之间虚拟一条直线;所述抓取单元4则基于所述直线虚拟单 元23虚拟出的直线进行网页数据抓取。其中,所述直线生成算法为两步算 法。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理 解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本 领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方 式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号