网络爬虫
- 格式:doc
- 大小:367.50 KB
- 文档页数:18
基于Python的网络爬虫技术研究与应用一、引言网络爬虫(Web Crawler)是一种自动获取网页信息的程序或脚本,它可以模拟人类浏览网页的行为,按照一定的规则抓取互联网上的信息。
Python作为一种简洁、易学、功能强大的编程语言,被广泛应用于网络爬虫技术的研究和实践中。
本文将探讨基于Python的网络爬虫技术在不同领域的应用,并介绍其原理和实现方法。
二、网络爬虫技术概述网络爬虫技术是信息检索和数据挖掘领域的重要组成部分,它可以帮助用户从海量的网络数据中快速准确地获取所需信息。
基本上,一个网络爬虫程序主要包括以下几个步骤:发送HTTP请求、获取网页内容、解析网页数据、存储数据等。
Python语言具有丰富的库和框架,如Requests、BeautifulSoup、Scrapy等,可以帮助开发者轻松实现各种复杂的网络爬虫功能。
三、Python网络爬虫技术原理1. 发送HTTP请求在进行网页抓取之前,首先需要向目标网站发送HTTP请求,获取网页内容。
Python中的Requests库提供了简洁易用的API,可以方便地发送GET或POST请求,并处理服务器返回的响应数据。
2. 解析网页数据获取到网页内容后,需要对其进行解析提取所需信息。
BeautifulSoup是一个强大的HTML解析库,可以帮助开发者高效地从HTML或XML文档中提取数据,并支持多种解析器。
3. 存储数据爬取到的数据通常需要进行存储和分析。
Python中可以使用各种数据库(如MySQL、MongoDB)或文件格式(如CSV、JSON)来保存爬取到的数据,以便后续处理和分析。
四、Python网络爬虫技术应用1. 网络数据采集利用Python编写网络爬虫程序,可以实现对特定网站或页面的数据采集。
比如新闻网站、电商平台等,可以通过网络爬虫定时抓取最新信息,为用户提供及时准确的数据支持。
2. SEO优化搜索引擎优化(SEO)是提升网站在搜索引擎中排名的关键技术之一。
网络爬虫原理网络爬虫(也常被称为“机器人”、“蜘蛛”或“Web爬虫”),是一种搜索引擎技术,可以自动地从网络中搜集信息。
它可以帮助用户收集大量的有用和大量的信息,可以搜集链接、图像、音频、视频等文件。
一台网络爬虫是一台自动化的计算机程序,它可以自动地搜索指定的网站,收集信息并保存在其内部数据库中。
为了实现网络爬虫的功能,它需要经过一定步骤,步骤如下:1、首先,当爬虫程序启动时,它会从一个称为“起始页面” (seed page)特殊页面开始。
个页面通常是搜索引擎列出的某种网页,比如百度搜索结果中排名最靠前的页面,或者某个具体的网站的首页。
2、爬虫会从起始页面开始,抓取其中的链接,并把这些链接添加到搜索队列中,这样爬虫才能继续爬取网络中的页面。
每当爬虫抓取到新的页面时,就会从中提取新的链接,并添加到搜索队列中。
3、爬虫需要定期地抓取新页面,并将页面中的信息抓取到本地数据库中,以供后续使用。
4、当爬虫完成抓取任务时,它会将所有的信息都存储到本地数据库中,便于后续使用。
在现代的网络爬虫中,一般都采用多线程抓取,也就是多个线程同时抓取一个网站,以提高抓取效率。
多线程抓取可以有效地提升爬虫的抓取效率,从而减少抓取所需的时间。
此外,现在网络爬虫还可以采取其它的一些技术,比如机器学习、自然语言处理等,以加强其功能。
最后,为了保护网站的安全,应该合理地使用爬虫,避免给网站带来太大的负担。
网络爬虫除了上述功能之外,还可以用来收集市场信息,从而实现商业利益的最大化。
为此,可以通过爬虫来对公司产品、竞争对手、市场趋势和客户反馈等信息进行监控,以便收集、分析和利用这些信息,实现商业目标和利润最大化。
总的来说,网络爬虫具有一定的优势,能够有效地获取网络信息,实现信息收集和分析,可以帮助企业更好地实现商业利益。
因此,网络爬虫是一项非常有用的技术,可以在商业应用中大量应用。
网络爬虫实验报告网络爬虫实验报告一、引言随着互联网的迅猛发展,人们对于信息的获取需求也越来越迫切。
而网络爬虫作为一种自动化的数据采集工具,被广泛应用于各个领域。
本报告旨在介绍网络爬虫的原理、应用以及实际实验过程,并总结实验结果。
二、网络爬虫的原理网络爬虫是一种自动化程序,通过模拟人的浏览行为,自动访问网页并提取所需的信息。
其原理主要包括以下几个步骤:1. 发送请求:爬虫首先向目标网站发送HTTP请求,获取网页的源代码。
2. 解析网页:通过解析HTML源代码,爬虫可以提取出所需的信息,如标题、链接、图片等。
3. 存储数据:爬虫将提取到的数据存储到本地文件或数据库中,以便后续的分析和应用。
三、网络爬虫的应用网络爬虫在各个领域都有广泛的应用,以下是一些常见的应用场景:1. 搜索引擎:搜索引擎利用爬虫技术来抓取互联网上的网页,并建立索引,为用户提供快速准确的搜索结果。
2. 数据分析:爬虫可以用于采集大量的数据,如股票行情、天气数据等,以便进行数据分析和预测。
3. 舆情监测:通过爬虫技术,可以实时监测社交媒体、新闻网站等平台上的舆情信息,帮助企业进行舆情分析和危机公关。
四、实验过程本次实验我们选择了一个电商网站作为实验对象,目的是抓取该网站上的商品信息,并进行数据分析。
1. 确定目标网站:我们选择了一个知名的电商网站作为实验对象,该网站拥有大量的商品信息。
2. 编写爬虫程序:我们使用Python语言编写了一个简单的爬虫程序,通过发送HTTP请求获取网页源代码,并使用正则表达式提取商品信息。
3. 数据存储:我们将提取到的商品信息存储到本地的CSV文件中,方便后续的数据分析。
五、实验结果经过实验,我们成功地抓取了目标网站上的大量商品信息,并将其存储到本地文件中。
通过对这些数据的分析,我们得出了以下几个结论:1. 商品价格:通过统计分析,我们发现该电商网站的商品价格呈现一定的分布规律,可以根据这些数据制定合理的价格策略。
网络爬虫的概念
网络爬虫,也叫网络蜘蛛,是一种自动地在互联网上收集信息的程序。
这些程序通过模拟人类在浏览网页时的行为来访问网站并提取信息。
网络爬虫的工作原理是通过解析网页代码,找到链接并继续访问其他网页。
这些网页上的信息会被提取并存储在数据库中供后续使用。
网络爬虫通常用于搜索引擎、社交媒体监测、市场调研、价格比较网站等。
搜索引擎使用爬虫来索引网页并进行排名,社交媒体监测工具使用爬虫来收集社交媒体上的信息,市场调研公司使用爬虫来收集市场数据,价格比较网站使用爬虫来收集商品信息。
网络爬虫必须遵循网站的条款和条件,否则可能会被网站封禁。
一些网站也可能会使用反爬虫技术来阻止爬虫的访问。
网络爬虫是一种强大的工具,可以帮助我们收集大量的信息,但同时也要注意遵循网络道德和法律规定。
网络爬虫也可以分为两类:浅层爬虫和深层爬虫。
浅层爬虫只会抓取首页信息,而深层爬虫会抓取整个网站的信息。
网络爬虫也可以用于数据分析和挖掘,它可以帮助我们发现新的趋势和关系。
此外,网络爬虫还可以用于监测和预警,如监测网络安全事件和预警灾难等。
总而言之,网络爬虫是一种非常有用的工具,它可以帮助我们收集和分析大量的信息,并且在多个领域中都有着重要的作用。
然而,我们也需要注意遵循网络道德和法律规定,避免侵犯网站的权益。
网络爬虫技术第一篇:网络爬虫技术介绍网络爬虫技术是从网络上自动获取信息的一种技术,也叫做网页抓取或者网络蜘蛛。
它是一个自动地通过互联网采集网络数据的程序。
网络爬虫技术是搜索引擎的关键技术之一。
搜索引擎的底层就是一系列爬虫,通过爬虫从万维网上收集信息,然后通过算法对这些信息进行分析、处理、归类、排序等操作,最后呈现给用户。
网络爬虫技术的原理是模拟客户端向服务器发起请求,从而获取网络信息,并根据特定的规则,抓取需要的内容,保存到自己的数据库中。
网络爬虫技术的应用非常广泛,可以用于搜索引擎、数据挖掘、价格比较、信息监控等领域。
其中,搜索引擎应用最为广泛。
搜索引擎需要在短时间内从互联网上获取大量的网页,并对这些网页进行处理,将其中的信息提取出来,进行组织、处理、归纳、分析、挖掘,最终返回给用户。
为了避免网络爬虫造成的网站负荷和数据安全问题,很多网站会通过技术手段来限制网络爬虫的访问。
一些常用的限制手段包括:robots.txt文件、访问频率限制、验证码验证,以及反爬虫策略,如IP封锁、JS反爬虫等。
网络爬虫技术不仅有着广泛的应用范围,而且也有着复杂的技术要求。
爬虫涉及到的技术领域非常广泛,包括但不限于:Java开发、Python编程、分布式计算、数据库管理、网络安全等。
同时,最为关键的是对抓取的数据进行分析,得出有效的信息,这需要掌握一定的数据分析技能。
网络爬虫技术的出现,使得人们可以更加方便地获取互联网上的信息,提高了互联网信息的利用价值。
然而,随着人们对网络爬虫技术的使用,也引发了一系列的争议,包括隐私问题、版权问题、以及对于商业利用的限制问题。
总之,网络爬虫技术是互联网信息采集处理与利用的关键技术。
随着人们对它的需求日益增加,未来网络爬虫技术将会得到进一步的发展和应用。
第二篇:网络爬虫技术的发展与挑战网络爬虫技术自20世纪90年代发展以来,一直在不断地发展和创新。
一方面,随着互联网的快速发展和互联网用户行为方式的不断演进,网络爬虫的使用也不断发展出各种新的应用形态;另一方面,各种阻挡网络爬虫的技术和策略也不断更新,对爬虫技术提出了新的挑战。
网络爬虫的基本原理和编程实现引言:随着互联网的发展,网站中包含的信息日益庞大,人们需要从海量数据中获取有用的信息变得越来越困难。
而网络爬虫作为一种特殊的程序,可以自动化地从互联网上收集数据,并对这些数据进行分析和处理,为人们提供更多有用的信息。
本文将介绍网络爬虫的基本原理和编程实现。
一、网络爬虫的基本原理1. 爬虫的定义:网络爬虫是一种按照指定规则自动地抓取互联网信息的程序。
2. 工作原理:网络爬虫通过HTTP协议发送请求,获取网页的内容,然后对网页进行解析和处理,提取出有用的信息,并将其保存或进行进一步的分析。
二、网络爬虫的编程实现1. 环境准备:a. 安装Python开发环境b. 安装相关的第三方库(如requests、beautifulsoup、scrapy等)2. 发送HTTP请求:a. 使用requests库发送HTTP请求,获得网页的内容。
b. 设置请求头部的User-Agent字段,模拟浏览器的行为,避免被网站识别为爬虫并禁止访问。
3. 解析网页:a. 使用beautifulsoup库解析HTML文档,提取出网页中的有用信息。
b. 根据网页的结构和标签,使用CSS选择器或XPath语法进行元素的定位和提取。
4. 数据的存储和处理:a. 使用Python的文件操作功能,将爬取的数据保存到本地文件或数据库中。
b. 对爬取的数据进行清洗和处理,去除重复的或无用的信息。
5. 增加爬虫的健壮性:a. 设置合理的请求频率,避免对目标网站造成过大的访问压力。
b. 处理网站的反爬虫机制,如验证码、限制IP访问等。
c. 使用代理IP,轮换访问网站,提高抓取的成功率。
三、网络爬虫的应用领域1. 数据采集:爬虫可以通过抓取网页上的数据,形成结构化的数据,用于研究和分析。
2. 搜索引擎:搜索引擎利用爬虫程序收集互联网上的信息,建立索引并提供搜索服务。
3. 舆情监测:通过监测社交媒体、论坛等网站的信息,了解公众对某一事件或话题的态度和意见。
网络爬虫到底是什么?网络爬虫的基本原理是怎样的?大数据时代,通过爬虫可轻松获取网络上的大量公开数据。
刚接触爬虫一词的时候,内心想必都有这样的疑问:网络爬虫是什么?网络爬虫有什么用?网络爬虫的原理是什么?此篇文档力求简单明了地为大家讲清楚,爬虫的定义、作用和原理。
网络爬虫到底是什么网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
又被称为网页蜘蛛,聚焦爬虫,网络机器人。
在FOAF 社区中间,更经常的称为网页追逐者,另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
如果把互联网比喻成一个蜘蛛网,那么网络爬虫就是在网上爬来爬去的蜘蛛。
网络蜘蛛通过网页的链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,一直循环下去,直到把整个网站所有的网页都抓取完为止。
网络爬虫有什么用网络爬虫被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。
从功能上来讲,爬虫一般可用于数据采集,处理,储存三个部分。
网络爬虫的基本原理是怎么样的网络爬虫系统一般会选择一些比较重要的、出度(网页中链出超链接数)较大的网站的URL作为种子URL集合。
以这些种子集合作为初始URL,开始数据抓取。
其基本工作流程如下:1)将这些种子URL集合放入待抓取URL队列。
2)从待抓取URL队列中,取出待抓取URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。
此外,将这些URL放进已抓取URL队列。
3)分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。
如此反复进行,直到遍历了整个网络或者满足某种条件后,才会停止下来。
对应的,可以将互联网的所有页面分为五个部分:1)已下载未过期网页。
2)已下载已过期网页。
网络爬虫技术的研究一、概述随着信息技术的飞速发展,互联网已成为全球信息交换和共享的主要平台,蕴含着海量的、多样化的数据资源。
如何有效地从互联网中提取和整合这些信息,以满足日益增长的数据需求,成为当前计算机科学研究的重要课题。
网络爬虫技术就是在这样的背景下应运而生,它不仅能够自动地、批量地从互联网上抓取数据,还能对这些数据进行清洗、整合和分析,从而为各类应用提供高效、准确的数据支持。
网络爬虫,又称为网络蜘蛛、网络机器人,是一种按照一定的规则,自动抓取互联网信息的程序或者脚本。
它可以从一个或多个初始网页出发,通过模拟人类用户的浏览行为,如点击链接、填写表单等,遍历互联网上的网页,并将这些网页的内容抓取下来,保存到本地或者数据库中。
网络爬虫技术的应用范围非常广泛,包括但不限于搜索引擎、数据挖掘、舆情监测、个性化推荐等领域。
网络爬虫技术也面临着一些挑战和问题。
随着互联网规模的迅速扩大,网页的数量和内容日益丰富,如何设计高效的爬虫算法,以在有限的时间内抓取到尽可能多的有用信息,成为亟待解决的问题。
互联网上的网页结构复杂多变,如何准确地识别网页中的有效信息,避免抓取到无用或者错误的数据,也是爬虫技术需要解决的关键问题。
爬虫行为可能对目标网站造成一定的负载压力,如何合理控制爬虫的行为,避免对目标网站造成过大的影响,也是爬虫技术需要考虑的重要因素。
对网络爬虫技术的研究不仅具有重要的理论价值,也具有广泛的应用前景。
本文将从网络爬虫的基本原理、技术实现、应用领域以及未来发展趋势等方面进行深入探讨和研究,以期为推动网络爬虫技术的发展和应用提供有益的参考和借鉴。
1. 爬虫技术的定义与背景网络爬虫,又称为网络蜘蛛(Web Spider)或网络机器人(Web Robot),是一种自动化程序,它按照预设的规则,遍历互联网上的网页,收集、整理并存储信息。
爬虫技术就是研究和实现这种网络爬虫所涉及的一系列技术、方法和策略的统称。
随着大数据时代的来临,信息量的爆炸性增长使得从海量的网络资源中高效、准确地提取有价值的信息成为了一个迫切的需求,而爬虫技术正是解决这一问题的关键。
一、课程设计的目的与要求1.目的:1.1 掌握crawler的工作原理及实现方法;1.2 了解爬虫架构;1.3 熟悉网页抓取的整个流程及操作步骤;1.4 掌握宽度优先,深度优先算法,并实现宽度crawler应用程序的编写、调试和运行;1.5 掌握主题爬行及内容分析技术;1.6 实现一个最基础的主题爬虫的过程;1.7 理解pageRank算法,并编程验证;二、设计正文网络爬虫研究与应用[摘要]:本文通过对网络爬虫研究的逐步展开,讨论了爬虫的相关概念与技术,并通过实验设计了简单的基于宽度优先的爬虫和主题式爬虫。
最后,讨论了PageRank算法。
[关键词]:网络爬虫爬虫应用 PageRank算法1.引言随着网络技术的迅速发展,万维网已经成为人们获取信息的重要渠道,如何高效地提取并利用这些信息成为一个巨大的挑战。
现阶段的搜索引擎,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。
但是,这些通用性搜索引擎也存在着一定的局限性,如:(1)统一的返回不能满足不同用户的检索需求。
(2)搜索引擎提高覆盖面的目标与膨胀的网络信息之间的矛盾日益加深。
(3)搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。
为了解决上述问题,定向抓取相关网页资源的主题爬虫应运而生。
主题爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所需要的信息。
与通用爬虫不同,主题爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。
2.网络爬虫2.1Internet上的网页关系建模如下图所示,如果将网页看成是图中的某一个节点,而将网页中指向其他网页的链接看成是这个节点指向其他节点的边,那么我们很容易将整个Internet上的网页建模成一个有向图。
理论上,通过遍历算法遍历该图,可以访问到Internet上的几乎所有的网页。
图 1. 网页关系的建模图2.2搜索引擎的分类和整体结构2.2.1分类 :搜索引擎虽然所采用的技术和实现的方法各有不同,但是总体来说可以分为两类,一种是基于目录的搜索引擎,另一种是基于全文检索的搜索引擎。
2.2.2整体结构:目前,在国内外各主要商业搜索引擎在技术上主要使用了全文检索技术,下图为基于使用全文检索技术的搜索引擎的整体结构。
基于全文检索技术的搜索引擎主要由三部分组成,如图所示,信息采集器(网络爬虫),索引器、搜索接口。
图2 搜索引擎的整体结构2.3网络爬虫:2.3.1定义:网络爬虫是一个自动提取网页的程序,它为搜索引擎从Web上下载网页,是搜索引擎的重要组成部分。
2.3.2基本原理:爬虫从一个或若干初始网页的URL 开始,通过分析该URL 的源文件,提取出新的网页链接,继而通过这些链接继续寻找新的链接,这样一直循环下去,直到抓取并分析完所有的网页为止。
当然这是理想状态下爬虫的执行过程,但是实际上要抓取Internet上所有的网页是不可能完成的。
从目前公布的数据来看,最好的搜索引擎也只不过抓取了整个Internet40%的网页。
这有两个原因,其一是网络爬虫设计时的抓取技术瓶颈造成的,无法遍历所有的网页,很多网页链接不能从其他网页中得到。
其二是存储技术和处理技术造成的,如果按照每个页面的平均的大小是20K,那么100 亿个页面的大小就是200000G,对于现在的存储技术来说是个挑战。
2.3.3爬行策略:(1)广度优先:广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。
该算法的设计和实现相对简单,可以覆盖尽可能多的网页。
本课题采用广度优先策略。
对图1 中的节点进行访问:1-->2-->3-->4-->5-->6-->7-->8(2)深度优先:深度优先搜索策略是一种在开发Spider 的早期使用得较多的方法,是指网络蜘蛛会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。
当不再有其他超链可选择时,说明搜索已经结束。
对图1 中的节点进行访问:1-->2-->5-->6-->3-->7-->4-->82.3.4爬虫物理分布架构图3 爬虫物理分布架构爬虫部分阶段性地从互联网上抓取内容。
存储库存储爬虫下载下来的网页,是分布式的和可扩展的存储系统。
2.3.5简易爬虫实现流程图 4. 爬虫流程图图简易爬虫爬取网页的流程2.3.6 单个网络爬虫的系统结构图图5 单个Spider的系统结构单个Spider的系统结构如上图所示.每个爬虫从一组种子URL开始,首先根据初始URL 并按照机器人拒绝协议检测被访问主机是否允许访问该URL,通过检测后由HTTP/HTTPS下载模块下载该网页。
URL抽取器从下载的网页中抽取出新的URL,然后由URL过滤器逐个检测URL是否符合过滤器限制。
最后,用哈希函数计算各个URL的哈希值,如果属于本Spider 的爬行范围,则将该URL加入到本地URL数据库中;否则把该URL插入到URL发送队列中,由URL分发器定时转发给对应的Spider.3.主题爬虫3.1 定义主题网络爬虫就是根据一定的网页分析算法过滤与主题无关的链接,保留主题相关的链接并将其放入待抓取的URL队列中;然后根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。
所有被网络爬虫抓取的网页将会被系统存储,进行一定的分析、过滤,并建立索引,对于主题网络爬虫来说,这一过程所得到的分析结果还可能对后续的抓取过程进行反馈和指导。
3.2抓取的网页与主题的相关性决定策略(1)行业搜索:比如机票搜索,抓取的是各大航空公司网站和代理人网站上面的数据。
这种方法适合小型行业搜索引擎。
(2)根据得到的网页的内容,判断网页内容和主题是否相关。
如果一个网页是和主题相关的,在网页中的标题、正文、超链接中,通常会有一些和主题相关的关键词。
在面向主题的搜索中,这种词叫做导向词,给每个导向词一个权重,就能够优先访问和主题相关的URL。
(3)针对网页连接进行评分。
(后面着重讨论PageRank算法)3.3主题爬虫URL的处理流程图63.4抓取算法3.4.1在介绍算法的开始需要先做两个定义定义1.父网页:网页A中有url链接到网页B,那么网页A就是网页B的父网页。
定义2.子网页:网页A中有url链接到网页B,那么网页B就是网页A的子网页。
爬虫抓取过程中使用了五个队列,分别是等待队列,处理队列,错误队列,完成队列,抛弃队列。
等待队列:爬虫解析到的url先保存到等待队列中,在等待队列中的u rI按照特定的排序法则进行排序,等候爬虫的抓取。
处理队列:url正在被抓取时放进抓取队列,目的是防止url被同时多次抓取。
错误队列:在抓取过程中出错的urI保存到错误队列。
完成队列:一个url被爬虫完全抓取之后就将url放进完成队列。
3.4.2相关度计算在基于HTML协议的网页中,每一个url的链接文本最能概括表达url所指向的网页内容,在网页中有一个链接模型为<a href= “urltext”>text</a>,基于网页结构的明确性,text 往往是一个非常精确的概括性描述文字。
在这种结构基础上,我们采用向量空间模型来计算链接文本text的相似度,用它标记urltext的相关度。
模型公式如公式(1)。
其中Wij表示特征向量在链接文本中的权值,Wir表示特征向量i在主题特征库中的权值,R代表主题特征向量,SIM(Pj,R)表示链接文本Pi的相关度。
3.4.3 爬虫的抓取算法如下:(1)将初始页面url集合放进等待队列,分配每个url一个相关性消息值m,并给每个url同样的相关度值。
这个相对于后面将要计算到的值较大。
初始页面会人为根据主题进行筛选,所以与主题的紧密度高。
人为的给定一个高的相关度值优点有两个,首先,减少爬虫的计算量,这些种子站点不需要通过相关度的计算。
其次,可以在等待队列中置于较靠前的位置,在以后的更新过程中,可以优先更新。
(2) 对等待队列中的url,先根据m值大小排序,再根据相关度的大小排序。
(3) 根据第二步排好序的等待队列,将排序最前的url拿出放进处理队列,爬虫开始抓取。
(4) 下载网页到本地磁盘,并建立索引,然后将url地址放进完成队列。
(5)利用解析器解析出网页中的链接与对应的链接文本,利用公式1计算链接地址的相关度值。
(6) 将第5步得到的相关度值与相关度阀值f 进行比较,其结果分为三种情况: 第一种情况是相关度值大于相关度阀值,且父网页的相关性消息m 值等于初始值,则直接传递父网页的m 值给子网页。
第二种情况是相关度值大于相关度阀值,且父网页的相关性消息m 值小于初始值,则恢复m 值为初始值,传递m 值给子网页。
第三种情况是相关度值小于相关度阀值,则将父网页的m 值乘以遗传基因比例b 传递子网页的(b 值大于0小于1),子网页的相关性消息值是m*b 。
(7) 将url ,m 值,相关度值放进等待队列,重复第二步。
(8) 算法结束。
3. PageRank 算法PageRank 算法是由Google 公司两个创始人Sergey 及LarryPage 提出的一种搜索引擎排序算法。
先给每个网页赋予一个PageRank 值,那么对于用户查询串分词后得到关键字的集合,Q = <key1,key2,…,keyn>,通过搜索引擎中的索引器,得到一个匹配的网页集合PageSet=<pi,pk,pm,pn,…>,然后对<pi,pk,pm,pn,…>中的网页按PageRank 值高低进行排序,把排序高的前面K 个网页返回给用户。
3.1 PageRank(p)计算公式PageRank 是基于这样一个假设:从许多优质的网页上链接过来的网页,必定也是优质网页。
它的特点跟用户的查询过程是不相关的,而跟网页之间的链接结构相关,这个值一般是预先计算好的。
它赋予每一个网页p 一个特定的Rank 值,记为PageRank(p),计算公式为:由此可见,某个网页文件的PageRank 值为所有链入该网页的其他网页的PageRank 值除以它们各自的链出网页个数 (网页出度)的和。
A 表示所有指向网页p 的网页集合,|P|表示网页p 的链出网页个数。
PageRank(p)的值跟网页p 链入网页个数、网页p 链入网页的链出网页个数以及网页p 链入网页的质量(重要性)这三个因素有关。
基于这样一个假设:一个用户随机地访问网络,该用户到达一个随机网页文件的概率为c ,或者随机地沿着一个链接返回到已访问网页文件的概率为1-c ,同时假设该用户不会沿着刚才的访问网页链接返回到已访问过的网页文件。