APP下载

主题网络爬虫用于网络信息AI 系统的应用研究

2021-10-27何顶军

魅力中国 2021年36期
关键词:爬虫队列网页

何顶军

(泸州职业技术学院,四川 泸州 646000)

AI(Artificial Intelligence)技术是当前飞速发展的热门技术之一,AI 技术和大数据技术是许多智能系统中的关键技术。基于网络信息的AI 系统要实现其智能化,必须以海量数据作为前提。Internet 的飞速发展加快了网络信息爆炸式增长,要在网络中找到有用的信息有如大海捞针。虽然搜索引擎的出现在一定程度上缓解了这个问题,但是,针对某一特定主题,通用搜索引擎具有信息冗余大、内存占用高、消耗大量系统资源、查准率低和个性化需求弱等问题[1]。为弥补通用搜索引擎的这些缺陷,主题网络爬虫(Topical Web Crawler)技术应用而生。主题网络爬虫是网络爬虫的一个重要分支,它只抓取用户特定的、与主题相关的网页,忽略与主题无关的网页,具有准确性、深入性和专业性等特点。

一、网络爬虫概述

(一)爬虫的分类

爬虫是模拟用户浏览网页或Web 应用的自动化程序。网络爬虫通常可以分为通用网络爬虫(General Purpose Web Crawler)、主题网络爬虫(Topical Web Crawler)或叫聚焦网络爬虫(Focused Web Crawler)、增量式网络爬虫(Incremental Web Crawler)和深层网络爬虫(Deep Web Crawler)。

通用网络爬虫又称全网爬虫(Scalable Web Crawler),从一个或若干个初始URL 开始,扩展到整个Internet,通常被搜索引擎和大型Web 服务提供商所掌握和使用。

主题网络爬虫就是过滤与主题无关的URL,保留主题相关的URL 并将其放入待抓取的队列;然后按照一定策略从队列选出下一步要抓取的URL,重复至中止条件满足。

增量式网络爬虫是指对已下载网页采取增量式更新和只爬取新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。

深层网络爬虫是专门针对那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获取的Web 页面。如用户注册后才可见的网页就需要使用深层网络爬虫进行爬取。

(二)浏览器解析网页的过程

爬虫获取网页与人工获取网页类似,主要经历了以下四个阶段:

1.查找域名对应的IP 地址。

2.向IP 对应的服务器发送请求。

3.服务器响应请求,发回网页内容。

4.浏览器解析网页内容。

二、主题网络爬虫的基本模块

主题网络爬虫一般由以下模块组成:网页下载模块、网页分析模块、链接过滤模块、网页存储模块、URL 队列模块。

网页下载模块,根据URL 获取IP 地址后,模拟浏览器发出http 请求,从服务器下载目标网页。当前可选择python 或java 主流语言来实现,会涉及服务器反爬技术和非静态页面的爬取等难点,但可使用代理服务器、分布式爬虫、session 等技术加以解决。

网页分析模块主要分析网页标题、网页内容等与主题的相关性,对相关的网页进行保存,并按照相关性的大小进行相应处理。

链接过滤模块判断、预测新获取的URL 与主题的相关性,对可能相关的URL 添加到队列进行排队下载,大大减少无关网页下载占用的时间、空间和带宽。

网页存储模块主要对相关的网页进行信息的提取,结构化存储,以备智能系统其他模块进一步对数据的挖掘和处理。

URL 队列模块维护一个待下载的队列,并根据优选级对队列中的URL做排序处理。

三、主题网络爬虫的工作流程

主题网络爬虫与传统网络爬虫最显著的区别是选择与主题相关的网页,过滤掉与主题无关的网页,所以链接过滤模块是最核心的模块。主题网络爬虫的主要工作步骤如下:

1.确定种子URL,通常由人工在配置文件或可视化界面中进行设定。

2.种子URL 放入待抓取队列。

3.根据URL 选取规则从队列中选取1 个URL 进行下载。队列中URL 往往有许多个,所以存在优选级排序问题,可以使用多线程或分布式爬虫技术一次处理多个URL。

4.解析网页,存储网页,获取新的URL。根据过滤策略判断新的URL是否与主题相关,如果相关则转步骤2 把新的URL 添加到队列,否则丢弃该URL 转5。

5.判断是否达到终止条件,如果达到终止条件转6,否则转2。6.终止。

四、主题网络爬虫的关键技术

(一)搜索策略

Web 上所有网页都是通过超链接实现互相访问,本质是从种子URL 开始的具有层次的树型结构。如果一个种子页面A 中包括BCD 四个子页面,页面B 包含子页面E,页面C 包含子页面F,形如图1 所示:

广度优先(Breadth-First-Search)遍历策略:按照层次由浅到深的次序访问,即首先访问第0 层的所有页面,再访问第1 层的所有页面,第2 层的所有页面,……,最后访问第n 层的所有页面,同一层页面按照从左到右的次序访问。按照此策略对图中6 个页面的搜索顺序是A-B-C-D-E-F。

深度优先(Depth-First-Search)遍历策略:依然是按照层次由浅到深的次序访问,但每层每次仅从左到右访问第1 个未被访问过的节点后进入下一层,直到纵深方向没有可访问节点后再回退到种子节点重新开始下一轮由浅到深的搜索。按照此策略对图中6 个页面的搜索顺序是A-B-E-CF-D。

除了以上2 种最常用的搜索策略之外,有时也会使用反向链接数策略,Partial PageRank 策略,大站优先策略等,此处不再赘述。

(二)语义分析

语义分析是自然语言(Natural Language Processisng,NLP)中的核心部分,主要包括词法分析、句法分析、语用分析和语境分析等。[2-3]

语义分析在主题网络爬虫中的处理流程如下:

1.对网页的中英文进行分词操作,过滤掉错误的短语和停用词。

2.统计关键词出现次数并计算频率,根据次数、频率、主题得出关键词的权重。

3.把网页信息处理成n 个分量的网页向量,即每个关键词在网页中所占的权重。最后根据余弦公式计算出向量相似度。

4.根据相似度值对网页做进一步过滤。

五、结语

主题网络爬虫应用到智能AI 系统中,增强了智能系统的智能性,在没有数据、数据量少或严重依赖网络数据的系统中显得尤为重要。根据2个基金项目开发的AI 智能系统的实践表明,主题网络爬虫对获取、处理特定话题的信息非常有效,而且准确性较高。在设计基于主题网络爬虫的智能应用系统时应该注意结合多种算法提高信息获取的准确性,通过精心设计过滤规则和爬取条件来减少不必要的资源开销,通过分布式爬虫解决速度问题和反爬问题。

猜你喜欢

爬虫队列网页
利用网络爬虫技术验证房地产灰犀牛之说
基于Python的网络爬虫和反爬虫技术研究
基于HTML5与CSS3的网页设计技术研究
队列队形体育教案
队列里的小秘密
基于多队列切换的SDN拥塞控制*
基于Scrapy框架的分布式网络爬虫的研究与实现
基于HTML5静态网页设计
谁抢走了低价机票
搜索引擎怎样对网页排序