Python教程

python 爬虫实战的原理

本文主要是介绍python 爬虫实战的原理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

二、原理

功能:下载网页数据,为搜索引擎系统提供数据来源。组件:控制器、解析器、资源库。

Web网络爬虫系统首先将种子URL放入下载队列,然后简单地从队首中取出一个URL下载其对应的网页。得到网页的内容将其储存后,再经过解析网页中的链接信息可以得到一些新的URL,将这些URL加入下载队列。然后取出一个URL,对其对应的网页进行下载,再解析,如此反复进行,直到遍历了整个网络或满足某种条件后才会停止下来。

三、爬虫分类

1、传统爬虫

传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。

2、聚焦爬虫

聚焦爬虫工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用链接并将其放入等待抓取URL队列。然后它将根据一定搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统某一条件时停止。另外所有被爬虫抓取的网页将会被系统存储,进行一定的分析、过滤,并建立索引,以便之后的查询和检索。对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。

3、通用网络爬虫(全网爬虫)

通用网络爬虫又称全网爬虫, 爬行对象从一些种子URL扩充到整个Web,主要为门户站点搜索引擎和大型Web服务提供商采集数据。这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面顺序要求相对较低,同时由于待刷新页面太多,通常采用并行工作方式,但需要较长时间才能刷新一次页面。虽然存在一定缺陷, 但通用网络爬虫适用于为搜索引擎搜索广泛的主题,有较强应用价值。

实际的网络爬虫系统通常是几种爬虫技术相结合实现的。

四、网页抓取策略

在爬虫系统中,待抓取URL队列是很重要的一部分。队列中URL以什么样顺序排列也是一个很重要的问题,因为这涉及先抓取哪个页面,后抓取哪个页面。

而决定这些URL排列顺序的方法,称之为抓取策略。

1、宽度优先搜索:

在抓取过程中,在完成当前层次搜索后,才进行下一层次搜索。

优点:算法设计和实现相对简单。缺点:随着抓取网页增多,大量无关网页将被下载并过滤,算法效率将变低。

2、深度优先搜索:

从起始网页开始,选择一个URL进入,分析这个网页中的URL,一个链接一个链接地抓取下去,直到处理完一条路线之后再处理下一条URL中的路线。

例如,下图中深度优先搜索的遍历方式时 A 到 B 到 D 到 E 到 F(ABDECF),而宽度优先搜索的遍历方式是 A B C D E F 。

这篇关于python 爬虫实战的原理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!