单元七Python爬虫基础;;6;网络爬虫(WebCrawler),又被称为网络蜘蛛,是一种按照一定规则自动抓取网站信息的程序或者脚本。网络蜘蛛是一个很形象的名字,如果把互联网比喻成一个蜘蛛网,那么爬虫就是在网上爬来爬去的蜘蛛。网络爬虫从一个或若干初始网页的URL开始,先获得初始网页的URL,在抓取网页的过程中,不断从当前页面上抓取新的URL放入队列,直到满足一定条件为止。
网络爬虫按照系统结构和实现技术大致可以分为以下几种类型:通用网络爬虫(GeneralPurposeWebCrawler)、聚焦网络爬虫(FocusedWebCrawler)、增量式网络爬虫(IncrementalWebCrawler)、深层网络爬虫(DeepWebCrawler)。
;1.通用网络爬虫
通用网络爬虫又称全网爬虫(ScalableWebCrawler),爬行对象从一些种子URL扩充到整个Web,它主要为门户站点搜索引擎和大型Web服务提供商采集数据。这类网络爬虫的爬行范围广,对爬行速度和存储空间的要求较高,对爬行页面的顺序要求相对较低。由于待刷新的页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。通用网络爬虫适用于为搜索引擎搜索广泛的主题。
2.聚焦网络爬虫
聚焦网络爬虫,又称主题网络爬虫(TopicalWebCrawler),是指选择性地爬行那些与预先定义好的主题相关的页面的网络爬虫。和通用网络爬虫不同,聚焦网络爬虫只需要爬行与主题相关的页面即可,极大地节省了硬件和网络资源,并且由于保存的页面数量少所以更新快,可以很好地满足一些特定人群对特定领域信息的需求。
;3.增量式网络爬虫
增量式网络爬虫是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化的网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。与周期性爬行和刷新页面的网络爬虫不同,增量式网络爬虫只会在需要的时候爬行新产生或发生更新的页面,并不会重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减少时间和空间上的损耗,但是爬行算法的复杂度和实现难度有所增加。
4.深层网络爬虫
深层网络爬虫可以爬取互联网中的深层页???。在互联网中,网页按存在方式分类可以分为表层页面和深层页面。所谓的表层页面,指的是不需要提交表单,使用静态的链接就能够到达的静态页面;而深层页面则隐藏在表单后面,不能通过静态链接直接获取,是需要提交一定的关键词之后才能够获取到的页面。网络爬虫爬取深层页面时,需要想办法自动填写好对应表单,所以,深层网络爬虫与一般爬虫的主要区别是表单填写。
;网络爬虫系统主要由控制器、解析器、资源库3部分组成。控制器的主要工作是给多线程中的各个爬虫线程分配工作任务;解析器的主要工作是下载网页,进行页面的处理,将一些JavaScript脚本标签、CSS代码内容、空格字符、HTML标签等内容处理掉,爬虫的基本工作是由解析器完成的;资源库用来存放下载到的网页资源,一般都采用大型的数据库存储,如Oracle数据库,并对网页资源建立索引。
以通用网络爬虫结构为例来说明网络爬虫的基本工作流程。
;网络爬虫的基本工作流程如下:
(1)选取一部分精心挑选的种子URL。
(2)将这些URL放入待抓取URL队列。
(3)从待抓取URL队列中取出待抓取的URL,解析DNS,并且得到主机的IP,将URL对应的网页下载下来,然后进行解析,将解析后的内容存储到已下载网页库中。此外,还要将已下载URL放进已抓取URL队列。
(4)分析已抓取URL队列中的URL,提取其中待抓取的URL,将其放入待抓取URL队列,从而进入下一个循环。
这是一个通用网络爬虫结构及其工作流程,之后单元所用到的爬虫都是这种结构。;八爪鱼采集器是一种用于抓取网页数据的网络爬虫工具,可简单快速地将网页数据转化为结构化数据存储成Excel文件或数据库等多种形式,并且提供基于云计算的大数据云采集解决方案,实现精准、高效、大规模的数据采集。八爪鱼采集器通常具有数据挖掘、竞争情报、市场研究、数据分析和各种其他用途。
八爪鱼采集器能全网全渠道进行数据采集,可采集网站覆盖新闻、社交媒体、电商、房产、招投标、监管局等多种网站类型,支持文本、图片、文件内容获取,帮助大家降低数据获取门槛与成本。;(1)智能识别算法内嵌。系统内置智能识别算法,能够从杂乱的网页中智能识别并展示网页内所有数据字段及内容,并支持页面下载。
(2)异构数据统一处理。支持正则表达式等方式对文字、链接、图片、音视频等多种模态数据结构化输出与应用,实现数据简单清洗。
(3)定时采集无须值守。系统可自定义采集时间,支持分钟/小