网络爬虫的基本工作流程如下:
1.首先选取一部分精心挑选的种子URL;
2.将这些URL放入待抓取URL队列;
3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。
4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。
互联网的所有页面分为五个部分:
1.已下载未过期网页
2.已下载已过期网页:抓取到的网页实际上是互联网内容的一个镜像与备份,互联网是动态变化的,一部分互联网上的内容已经发生了变化,这时,这部分抓取到的网页就已经过期了。
3.待下载网页:也就是待抓取URL队列中的那些页面
4.可知网页:还没有抓取下来,也没有在待抓取URL队列中,但是可以通过对已抓取页面或者待抓取URL对应页面进行分析获取到的URL,认为是可知网页。
5.还有一部分网页,爬虫是无法直接抓取下载的。称为不可知网页。
抓取策略
在爬虫系统中,待抓取URL队列是很重要的一部分。待抓取URL队列中的URL以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取那个页面,后抓取哪个页面。而决定这些URL排列顺序的方法,叫做抓取策略。下面重点介绍几种常见的抓取策略:
1.深度优先遍历策略
深度优先遍历策略是指网络爬虫会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。
2.宽度优先遍历策略
宽度优先遍历策略的基本思路是,将新下载网页中发现的链接直接插入待抓取URL队列的末尾。也就是指网络爬虫会先抓取起始网页中链接的所有网页,然后再选择其中的一个链接网页,继续抓取在此网页中链接的所有网页。
3.反向链接数策略
反向链接数是指一个网页被其他网页链接指向的数量。反向链接数表示的是一个网页的内容受到其他人的推荐的程度。因此,很多时候搜索引擎的抓取系统会使用这个指标来评价网页的重要程度,从而决定不同网页的抓取先后顺序。
在真实的网络环境中,由于广告链接、作Bi链接的存在,反向链接数不能完全等他我那个也的重要程度。因此,搜索引擎往往考虑一些可靠的反向链接数。
4.Partial PageRank策略
Partial PageRank算法借鉴了PageRank算法的思想:对于已经下载的网页,连同待抓取URL队列中的URL,形成网页集合,计算每个页面的PageRank值,计算完之后,将待抓取URL队列中的URL按照PageRank值的大小排列,并按照该顺序抓取页面。
如果每次抓取一个页面,就重新计算PageRank值,一种折中方案是:每抓取K个页面后,重新计算一次PageRank值。但是这种情况还会有一个问题:对于已经下载下来的页面中分析出的链接,也就是我们之前提到的未知网页那一部分,暂时是没有PageRank值的.为了解决这个问题,会给这些页面一个临时的PageRank值:将这个网页所有入链传递进来的PageRank值进行汇总,这样就形成了该未知页面的PageRank值,从而参与排序。
5.OPIC策略策略
该算法实际上也是对页面进行一个重要性打分。在算法开始前,给所有页面一个相同的初始现金(cash)。当下载了某个页面P之后,将P的现金分摊给所有从P中分析出的链接,并且将P的现金清空。对于待抓取URL队列中的所有页面按照现金数进行排序。
6.大站优先策略
对于待抓取URL队列中的所有网页,根据所属的网站进行分类。对于待下载页面数多的网站,优先下载。这个策略也因此叫做大站优先策略。
相关推荐
【网络爬虫介绍】 网络爬虫,又称为网页蜘蛛或网络机器人,是一种自动化程序,遵循预设的规则,遍历互联网以抓取信息。它的主要功能是获取网页内容,为搜索引擎建立网页副本并进行索引,以便快速访问。此外,爬虫还...
Python 网络爬虫介绍 本资源为 Python 网络爬虫的入门级教程,涵盖了网络爬虫的基本概念、爬虫的定义、网络爬虫的基本操作、URI 和 URL 的概念、浏览网页的过程等知识点。通过本资源的学习,读者可以对 Python 网络...
网络爬虫简介 网络爬虫是按照一定规则,自动抓取万维网信息的程序或者脚本。简单点说就是一段自动化执行的程序,它会请求网站并提取数据。网络爬虫技术是搜索引擎的根基,每天都要爬取网络上海量的数据,然后再做...
下面将详细介绍网络爬虫的基本原理、组成部分以及实现方法。 1. **爬虫的组成** - **种子URL**:爬虫的起点,通常是用户指定的一组网页链接。 - **下载器**:负责从互联网上下载网页内容。 - **解析器**:解析...
描述中提到,这个文档提供了详细的网络爬虫介绍,特别是针对C语言的初学者,意味着它包含了一个简单的C语言爬虫实现,旨在帮助学习者理解爬虫的基本工作原理和编程技术。 标签中的“C 语言”、“编写”、“一个”、...
网络爬虫是一种自动化程序,用于在网络上搜集和处理大量数据,它是互联网信息挖掘的重要工具。网络爬虫的工作原理是遵循HTTP协议,模拟用户浏览行为,遍历网页,抓取所需信息。这个过程通常包括URL发现、页面下载、...
Python网络爬虫技术是当前IT领域中非常热门的一个分支,尤其在大数据分析和人工智能应用中起着关键作用。本资源“Python网络爬虫技术_习题答案.rar”看似是一个教学资料,包含了一些图像文件和章节内容,我们可以从...
本篇文章《Python入门网络爬虫之精华版》主要介绍了Python网络爬虫的基础知识,从抓取、分析到存储的三个主要方面,以及如何应对一些常见的反爬虫机制。此外,还提及了Scrapy这一流行的爬虫框架,并提供了一个参考...
网络爬虫介绍PPT,主要分为四个部分,第一个部分是网络爬虫的介绍,第二个部分是学习网络爬虫之前该学习的部分,第三个部分是网络爬虫的使用示例,第四个部分是网络爬虫的教程
网络爬虫基础知识部分主要介绍了网络爬虫的概念、作用、分类和基本流程。网络爬虫是一种自动获取网页内容的程序,可以用于搜索引擎、数据分析、新闻聚合等多种场景。网络爬虫的分类多样,按照执行方式可以分为聚焦...
常用开源网络爬虫介绍及其比较 Nutch 开发语言:Java 简介: Apache的子项目之一,属于Lucene项目下的子项目。 Nutch是一个基于Lucene,类似Google的完整网络搜索引擎解决方案,基于Hadoop的 分布式处理模型保证了...
简单介绍什么是网络爬虫,以及网络爬虫的工作原理,为网络爬虫的设计编写提供参考
### 网络蜘蛛与网络爬虫:深入解析与应用 #### 一、网络蜘蛛与网络爬虫概览 在互联网技术的飞速发展下,网络蜘蛛(也称网络爬虫)成为数据挖掘与信息提取的重要工具。网络蜘蛛是一种自动化的程序或软件,用于遍历...
【网络爬虫源码解析】 网络爬虫是一种自动获取网页信息的程序,它通过模拟人类浏览器的行为,遍历互联网上的信息。在Java编程语言中,实现网络爬虫涉及到多个技术领域,包括HTTP协议理解、HTML解析、数据提取、并发...
2. 网络爬虫概念:在详细介绍网络爬虫的具体模块之前,首先需要对网络爬虫的定义、分类以及工作原理有一个基本的理解。 3. Urllib模块:Urllib是Python的标准库之一,用于访问网络资源。了解如何使用Urllib进行HTTP...
此外,压缩包中的文件提供了辅助学习资料,如"JAVA300集简介.pdf"和"python400集介绍.pdf"可能包含Java和Python的基础教程,对理解和实现网络爬虫技术有帮助。"【一定要读我】(基于网络爬虫技术的网络新闻分析).txt...
《用Python写网络爬虫》是一本专注于介绍如何利用Python编程语言进行网络数据抓取的教程。这本书主要针对初学者,旨在帮助读者掌握Python的基本知识并应用到网络爬虫的实践中。通过学习这本书,读者可以了解到网络...