通过网络采集器采集大数据
优采云 发布时间: 2020-08-07 18:51网络数据采集是指通过网络采集器或网站公共API从网站获取数据信息. 此方法可以从网页中提取非结构化数据,将其存储为统一的本地数据文件,并以结构化方式进行存储. 它支持文件或附件(例如图片,音频,视频等)的采集,并且附件和文本可以自动关联.
在Internet时代,网络爬虫主要为搜索引擎提供最全面,最新的数据.
在大数据时代,网络爬虫是从Internet采集数据的更有利的工具. 已知有数百种各种Web爬网工具,并且Web爬网工具基本上可以分为三类.
本节首先简要介绍Web爬网程序的原理和工作流程,然后讨论Web爬网程序的爬网策略,最后介绍典型的Web工具.
网络爬虫的原理
Web爬网程序是一种程序或脚本,可以根据某些规则自动爬网Web信息.
网络采集器可以自动采集他们可以访问的所有页面内容,从而为搜索引擎和大数据分析提供数据源. 在功能方面,爬虫通常具有数据采集,处理和存储三个功能,如图1所示.
图1网络爬虫的原理图
除了供用户阅读的文本信息外,该网页还收录一些超链接信息.
Web爬网程序系统通过网页中的超链接信息连续获取Internet上的其他网页. Web采集器从一个或几个初始网页的URL开始,并在初始网页上获取URL. 在抓取网页的过程中,它会不断从当前页面中提取新的URL,并将它们放入队列中,直到满足系统的特定停止条件为止.
网络采集器系统通常会选择一些具有较高范围(网页中超链接的数量)的更重要网站的URL作为*敏*感*词*URL集合.
Web采集器系统使用这些*敏*感*词*集合作为初始URL来开始数据搜寻. 由于该网页收录链接信息,因此将通过现有网页的URL获得一些新的URL.
可以将网页之间的指向结构视为一个森林,每个*敏*感*词*URL对应的网页是该森林中一棵树的根节点,从而使Web爬虫系统可以根据广度优先搜索算法进行搜索或深度优先搜索该算法遍历所有网页.
由于深度优先搜索算法可能会将爬虫系统困在网站内部,不利于搜索更接近网站首页的网页信息,因此,广度优先搜索算法通常用于采集网页.
Web采集器系统首先将*敏*感*词*URL放入下载队列中,然后简单地从队列的开头取出URL以下载相应的网页,获取网页的内容并进行存储,然后解析链接网页中的信息以获取一些新网址.
其次,根据某些网络分析算法过滤掉与主题无关的链接,保留有用的链接,并将其放入等待抓取的URL队列中.
最后,取出一个URL,下载相应的网页,然后对其进行解析,然后重复该过程,直到它遍历整个网络或满足某些条件为止.
网络爬虫工作流程
如图2所示,Web采集器的基本工作流程如下.
1)首先选择*敏*感*词*网址的一部分.
2)将这些URL放入要抓取的URL队列.
3)从要爬网的URL队列中取出要爬网的URL,解析DNS以获取主机的IP地址,然后下载与该URL对应的网页并将其存储在下载的网页库中. 另外,将这些URL放入爬网URL队列中.
4)分析爬网的URL队列中的URL,分析其中的其他URL,然后将这些URL放入要爬网的URL队列,从而进入下一个周期.
图2 Web爬网程序的基本工作流程
网络爬虫爬网策略
由一般搜索引擎(例如Google和百度)抓取的网页数量通常以1亿为单位进行计算. 那么,面对如此众多的网页,网络爬虫如何才能尽可能地遍历所有网页,从而尽可能扩大网页信息的覆盖范围?这是Web采集器系统面临的一个非常关键的问题. 在Web采集器系统中,搜寻策略决定了搜寻网页的顺序.
本节首先简要介绍Web爬网程序爬网策略中使用的基本概念.
1)网页之间的关系模型
从Internet的结构的角度来看,网页通过不同数量的超链接相互连接,从而形成了一个相互关联的大型且复杂的有向图.
如图3所示,如果一个网页被视为图中的某个节点,并且链接到该网页中的其他网页被视为该节点到其他节点的边缘,那么我们可以很容易地将整个网络视为互联网上的网页被建模为有向图.
理论上,通过遍历算法遍历图形,您可以访问Internet上几乎所有的网页.
图3网页关系模型图
2)网页分类
从爬虫的角度将Internet划分为Internet的所有页面可以分为5部分: 下载和未过期的网页,下载和过期的网页,下载的网页,已知网页和未知网页,如图4所示.
爬行的本地网页实际上是Internet内容的镜像和备份. 互联网是动态变化的. 当Internet上的一部分内容更改时,爬网的本地网页将过期. 因此,下载的网页分为两种: 下载的未到期网页和下载的到期网页.
图4网页分类
要下载的网页是指要抓取的URL队列中的那些页面.
可以看到,网页是指尚未被爬网且不在要爬网的URL队列中的网页,但是可以通过分析已爬网的页面或要爬网的URL的对应页面来获得
还有一些网页爬网程序无法直接爬网和下载的网页,称为不可知网页.
以下重点介绍了几种常见的爬网策略.
1. 通用网络抓取工具
通用Web采集器也称为全Web采集器. 爬网对象从某些*敏*感*词*URL扩展到整个Web,主要是为门户搜索引擎和大型Web服务提供商采集数据.
为了提高工作效率,一般的网络爬虫将采用某些爬虫策略. 常用的爬网策略包括深度优先策略和广度优先策略.
1)深度优先策略
深度优先策略意味着网络爬虫将从起始页面开始,并逐个链接,直到不再深入为止.
Web采集器在完成搜寻分支后将返回上一个链接节点,以进一步搜索其他链接. 遍历所有链接后,爬网任务结束.
此策略更适合垂直搜索或网站内搜索,但是在抓取页面上具有更深内容的网站时,会造成大量资源浪费.
以图3为例,遍历的路径为1→2→5→6→3→7→4→8.
在深度优先策略中,当搜索某个节点时,该节点的子节点和该子节点的后继节点都比该节点的同级节点具有优先级. 深度优先的策略是: 搜索空间时,它将尽可能地远,并且仅在找不到后继节点时才考虑其同级节点.
这种策略确定深度优先策略可能无法找到最佳解决方案,甚至由于深度的限制而无法找到解决方案.
如果没有限制,它将沿路径无限期扩展,这将“捕获”到大量数据中. 通常情况下,使用深度优先策略会选择合适的深度,然后重复搜索直到找到解决方案,从而降低了搜索效率. 因此,当搜索数据量较小时,通常采用深度优先策略.
2)广度优先策略
广度优先策略根据网页内容目录的深度对网页进行爬网. 首先对较浅目录级别的页面进行爬网. 对同一级别的页面进行爬网时,爬网程序将进入下一个级别以继续爬网.
以图3为例,遍历路径为1→2→3→4→5→6→7→8
由于广度优先策略是在第N层的节点扩展完成后进入第N + 1层,因此可以保证找到路径最短的解决方案.
该策略可以有效地控制页面的爬网深度,避免遇到无限深分支时无法结束爬网的问题,实现方便,无需存储大量中间节点. 缺点是爬网到目录需要很长时间. 更深的页面.
如果搜索期间分支过多,即该节点的后续节点过多,则该算法将耗尽资源,并且在可用空间中找不到解决方案.
2. 专注于网络爬虫
焦点Web采集器,也称为主题Web采集器,是指选择性地搜寻与预定义主题相关的页面的Web采集器.
1)基于内容评估的抓取策略
DeBra将文字相似度的计算方法引入了Web采集器,并提出了Fish搜索算法.
该算法将用户输入的查询词作为主题,并将收录该查询词的页面视为与主题相关的页面. 它的局限性在于它无法评估页面与主题的相关性.
Herseovic改进了Fish搜索算法,并提出了Shark Search算法,该算法使用空间矢量模型计算页面与主题之间的相关性.
使用基于连续值的链接值计算方法,不仅可以计算出与主题相关的已爬网链接,还可以计算量化的相关度.
2)基于链接结构评估的爬网策略
网页与一般文字不同. 这是一个半结构化文档,收录大量结构化信息.
网页并不单独存在. 页面上的链接指示页面之间的相互关系. 基于链接结构的搜索策略模型使用这些结构特征来评估页面和链接的重要性,以确定搜索顺序. 其中,PageRank算法就是这种搜索策略模型的代表.
PageRank算法的基本原理是,如果一个网页被多次引用,那么它可能是一个非常重要的网页. 如果一个网页没有被多次引用,而是被一个重要网页引用,那么它也可能是一个重要网页. 网页的重要性会均匀地传递到它所引用的网页.
通过该页面上存在的前向链接将某个页面的PageRank划分,并将获得的值添加到前向链接所指向的页面的PageRank中,然后获得链接页面的PageRank
如图5所示,PageRank值为100的网页将其重要性平均传递给它所引用的两个页面,每个页面获得50. PageRank值为9的同一网页引用它. 3页中的每页都是3.
PageRank值为53的页面的值是从引用该页面的两个页面传递的值中得出的.
,
图5 PageRank算法示例
3)基于强化学习的爬行策略
Rennie和McCallum将增强型学习引入了重点爬虫中,使用贝叶斯分类器根据整个网页文本和链接文本对超链接进行分类,并计算每个链接的重要性,从而确定链接访问的顺序.
4)基于上下文地图的抓取策略
Diligenti等. 提出了一种爬网策略,通过建立上下文映射来学习网页之间的相关性. 这种策略可以训练机器学习系统,通过该系统可以计算出当前页面到相关网页的距离. 最近页面中的链接具有优先访问权.
3. 增量式网络爬虫
增量Web爬网程序是指对下载的网页进行增量更新并且仅对新生成或更改的网页进行爬网的爬网程序. 可以在一定程度上确保已爬网的页面尽可能新.
增量式网络爬虫有两个目标:
为了实现第一个目标,增量Web采集器需要重新访问该网页以更新本地页面集中的页面内容. 常用的方法有统一更新方法,个体更新方法和基于分类的更新方法.
为了实现第二个目标,增量网络爬虫需要对网页的重要性进行排名. 常用的策略包括广度优先策略,PageRank优先策略等.
4. 深度网络爬虫
根据网页的存在方式,它们可以分为表面网页和深层网页.
深层Web采集器体系结构由6个基本功能模块(搜寻控制器,解析器,表单分析器,表单处理器,响应分析器,LVS控制器)和两个采集器内部数据结构(URL列表和LVS)表组成.
其中,LVS(LabelValueSet)表示标签和值的集合,并用于表示填充表单的数据源. 在爬网过程中,最重要的部分是表单填充,包括基于领域知识的表单填充和基于网页结构分析的表单填充.
从零开始的大数据快速入门教程
Java基础教程
9. 通过网络爬虫采集大数据
10. Scrapy Web爬虫简介
11. 大数据预处理架构和方法