目前网络爬虫技术是很多深度学习和数据处理的研发人员必备的基础数据采集技能。今天我们就来介绍一下网络爬虫技术的相关情况。
网络爬虫又被称为网页蜘蛛、网络机器人,源于20世纪90年代的Google搜索引擎,是一种按照一定的规则,自动地抓取互联网上网页中的信息(文本、图片等)的程序或脚本,把抓取的信息存储到本地的服务器上,再由搜索引擎进行索引,从而提供检索服务的技术。所以网络爬虫的功能是下载网页数据,为搜索引擎系统提供数据来源。
很多大型的网络搜索引擎系统被称为“基于 Web数据采集的搜索引擎系统”,比如 Google和Baidu,由此可见Web 网络爬虫技术在搜索引擎中的重要性。互联网的网页中除了包含供用户阅读的文字信息外,还包含一些超链接信息。Web网络爬虫技术正是通过网页中的超链接信息不断访问网络上其它网页,从而不断获取信息。正是因为这种采集过程像一个爬虫或者蜘蛛在网络上漫游,所以它才被称为网络爬虫系统或者网络蜘蛛系统,在英文中称为Crawler或者Spider。
虽然网络爬虫技术已经诞生了数十年,随着网络信息技术的不断发展,需要抓取的网页信息数量呈爆炸式增长,对不同网页进行有针对性的、高效的信息抽取,是爬虫技术面临的新挑战。
从功能上来讲,爬虫的信息抓取过程一般分为数据采集,处理,储存三个部分,对应为控制器,解析器和资源库。
控制器是网络爬虫的中央控制器,控制器的主要工作是负责给多线程中的各个爬虫线程分配工作任务,它根据系统传过来的URL链接,分配线程,然后启动线程调用爬虫来爬取网页的过程。URL,全称Uniform Resource Locator,全球资源定位器,一般指网页的地址。
爬虫的基本工作是由解析器完成,解析器的主要工作是下载网页,进行页面的处理,主要功能有:下载网页,对网页的文本进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据等。
资源库主要是用来存储网页中下载下来的数据记录的容器,并提供生成索引的目标源。
传统网络爬虫一般会选择一些比较重要的和网页中链出超链接数较多网站的URL作为种子URL集合。网络爬虫以这些种子集合作为初始URL,开始数据的抓取。网络爬虫首先将种子URL放入下载队列,然后简单地从队首取出一个URL下载其对应的网页,并将URL通过DNS解析,把链接地址转换为网站服务器对应的IP地址。然后将其和网页相对路径名称交给网页下载器,网页下载器负责页面的下载。
对于下载到本地的网页,一方面将其存储到页面库中,等待建立索引等后续处理;另一方面将下载网页的URL放入已抓取队列中,这个队列记录了爬虫系统已经下载过的网页URL,以避免系统的重复抓取。对于刚下载的网页,从中抽取出包含的所有链接信息,并在已下载的URL队列中进行检查,如果发现链接还没有被抓取过,则放到待抓取URL队列的末尾,在之后的抓取调度中会下载这个URL对应的网页,对其对应的网页进行下载,然后再解析,如此反复进行,直到待抓取的URL列表为空或满足某种条件后才会停止下来。
聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。所以相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:对抓取目标的描述或定义、对网页或数据的分析与过滤、对URL的搜索策略。
喜欢本文的话,欢迎关注 活在信息时代 哦:)
评论留言