版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、华州专力#肾课程设计报告2021 - 2021 年度第 一学期名 称:?软件设计与实践?课程设计题 目:网络爬虫研究与应用院 系:计算机系_班 级:_学 号:_学生姓名:_指导教师:软件设计与实践教学组设计周数:_西周_成 绩:_日期:2021年1月14日软件设计与实践?课程设计任务书目的与要求1.了解网络爬虫的架构和工作原理,实现网络爬虫的根本框架;2.开发平台采用JDK 1.60 eclipse集成开发环境。主要内容1.了解网络爬虫的构架,熟悉网页抓取的整个流程。2.学习宽度优先和深度优先算法,实现宽度crawler应用程序的编写、调试和运行。3.学习主题爬行及内容分析技术。4.实现网络爬
2、虫的根本框架。三、进度方案序号设计实验内容完成时间备注1对网络爬虫程序进行初步认识2021-1-52学习算法2021-1-73设计爬虫的框架,划分功能模块2021-1-104代码实现及调试2021-1-135验收、撰写报告2021-1-14四、 设计成果要求1.要求按时按量完成所规定的实验内容;2.界面设计要求友好、灵活、易操作、通用性强、具有实用性;3.根本掌握所采用的开发平台。五、 考核方式平时成绩+验收+实验报告。学生姓名:于兴隆指导教师:王蓝婿2021 年 1 月 2 日、课程设计的目的与要求1.目的:1.1掌握crawler的工作原理及实现方法;1.2了解爬虫架构;1.3熟悉网页抓取
3、的整个流程及操作步骤;1.4掌握宽度优先,深度优先算法,并实现宽度crawler应用程序的编写、 调试和运行;1.5掌握主题爬行及内容分析技术;1.6实现一个最根底的主题爬虫的过程;1.7理解pageRank算法,并编程验证;二、设计正文网络爬虫研究与应用摘要:本文通过对网络爬虫研究的逐步展开,讨论了爬虫的相关概念与技术,并通过实验 设计了简单的基于宽度优先的爬虫和主题式爬虫。最后,讨论了PageRank算法。关键词:网络爬虫 爬虫应用PageRank算法1.引言随着网络技术的迅速开展,万维网已经成为人们获取信息的重要渠道,如何高效地提取并利用这些信息成为一个巨大的挑战。现阶段的搜索引擎,作为
4、一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性, 如:(1)(2)搜索引擎提高覆盖面的目标与膨胀的网络信息之间的矛盾日益加深。(3)搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。为了解决上述问题,定向抓取相关网页资源的主题爬虫应运而生。主题爬虫是一个自 动下载网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接, 获取所需要的信息。 与通用爬虫不同,主题爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。2.网络爬虫2.1Internet上的网页关系
5、建模如下列图所示,如果将网页看成是图中的某一个节点,而将网页中指向其他网页的链接看成是这个节点指向其他节点的边,那么我们很容易将整个Internet 的网页建模成一个有向图。理论上,通过遍历算法遍历该图,可以访问到Internet的几乎所有的网页。图1.网页关系的建模图2.2搜索引擎的分类和整体结构2.2.1分类:搜索引擎虽然所采用的技术和实现的方法各有不同,但是总体来说可 以分为两类,一种是基于目录的搜索引擎,另一种是基于全文检索的搜索引擎。2.2.2整体结构:目前,在国内外各主要商业搜索引擎在技术上主要使用了全文检 索技术,下列图为基于使用全文检索技术的搜索引擎的整体结构。基于全文检索技术
6、的 搜索引擎主要由三局部组成,如下图,信息采集器网络爬虫,索引器、搜索接口。图2搜索引擎的整体结构2.3网络爬虫:2.3.1定义:网络爬虫是一个自动提取网页的程序,它为搜索引擎从Web上下载网页,是搜索引擎的重要组成局部。2.3.2根本原理:爬虫从一个或假设干初始网页的URL开始,通过分析该URL的源文件,提取出新的网页链接,继而通过这些链接继续寻找新的链接,这样一直循环下去,直到抓取并分析完所有的网页为止。当然这是理想状态下爬虫的执行过程,但是实际上要抓取Internet上所有的网页是不可能完成的。从目前公布的数据来看,最好的搜索引擎也只不过 抓取了整个Internet40%的网页。这有两个
7、原因,其一是网络爬虫设计时的抓取技术瓶颈造 成的,无法遍历所有的网页, 很多网页链接不能从其他网页中得到。其二是存储技术和处理技术造成的,如果按照每个页面的平均的大小是20K,那么100亿个页面的大小就是200000G,对于现在的存储技术来说是个挑战。2.3.3爬行策略:(1)广度优先:广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单,可以覆盖尽可能多的网页。本课题采用广度优先策略。 对图1中的节点进行访问:1-2-3-4-5-6-7-8(2)深度优先:深度优先搜索策略是一种在开发Spider的早期使用得较多的方法,是指网络蜘蛛会从起始
8、页开始,一个链接一个链接跟踪下去,处理完这条线路之后再转入下一个起始页,继续跟踪链接。当不再有其他超链可选择时,说明搜索已经结束。对图1中的节点进行访问:1-2-5-6-3-7-4-82.3.42.3.4 爬虫物理分布架构图3爬虫物理分布架构爬虫局部阶段性地从互联网上抓取内容。存储库存储爬虫下载下来的网页,是分布式的和可扩展的存储系统。2.3.52.3.5 简易爬虫实现流程图4.爬虫流程图图简易爬虫爬取网页的流程2.3.62.3.6 单个网络爬虫的系统结构图URLIURLURL图5单个Spider的系统结构单个Spider的系统结构如上图所示.每个爬虫从一组种子URL开始,首先根据初始URL并
9、按照机器人拒绝协议检测被访问主机是否允许访问该URL,通过检测后由/SF载模块下载该网页。URLI由取器从下载的网页中抽取出新的URL然后由URL过滤器逐个检测URL是否符合过滤器限制。最后,用哈希函数计算各个URL的哈希值,如果属于本Spider的爬行范围,贝U将该URL参加到本地URL数据库中;否那么把该URL插入到URL发送队列中, 由URL分发器定时转发给对应的Spider.3.主题爬虫3.1定义主题网络爬虫就是根据一定的网页分析算法过滤与主题无关的链接,保存主题相关的链接并将其放入待抓取的URLR列中;然后根据一定的搜索策略从队列中选择下一步要抓取的 网页URL并重复上述过程,直到到
10、达系统的某一条件时停止。所有被网络爬虫抓取的网页 将会被系统存储,进行一定的分析、过滤,并建立索引,对于主题网络爬虫来说,这一过程 所得到的分析结果还可能对后续的抓取过程进行反应和指导。3.2抓取的网页与主题的相关性决定策略(1)行业搜索:比方机票搜索,抓取的是各大航空公司网站和代理人网站上面的数据。这种方法适合小型行业搜索引擎。(2)根据得到的网页的内容,判断网页内容和主题是否相关。如果一个网页是和主题相关的,在网页中的标题、正文、超链接中,通常会有一些和主题相关的关键词。在面向主 题的搜索中,这种词叫做导向词,给每个导向词一个权重,就能够优先访问和主题相关的URL(3)针对网页连接进行评分
11、。(后面着重讨论PageRanl#法)3.3主题爬虫URL的处理流程图63.4抓取算法3.4.1在介绍算法的开始需要先做两个定义定义1.父网页:网页A中有url链接到网页B,那么网页A就是网页B的父网页。定义2.子网页:网页A中有url链接到网页B,那么网页B就是网页A的子网页。爬虫抓取过程中使用了五个队列,分别是等待队列,处理队列,错误队列,完成队列,抛弃队列。等待队列:爬虫解析到的url先保存到等待队列中,在等待队列中的u rl按照特定的排序法那么进行排序,等候爬虫的抓取。处理队列:url正在被抓取时放进抓取队列,目的是防止url被同时屡次抓取。错误队列:在抓取过程中出错的url保存到错误
12、队列。完成队列:一个url被爬虫完全抓取之后就将url放进完成队列。3.4.2相关度计算在基于HTM协议的网页中,每一个url的链接文本最能概括表达url所指向的网页内容, 在网页中有一个链接模型为text,基于网页结构的明确性,text往往是一个非常精确的概括性描述文字。在这种结构根底上,我们采用向量空间模型来计算链接文本text的相似度,用它标记urltext的相关度。模型公式如公式(1)。V侦其中Wij表示特征向量在链接文本中的权值,Wir表示特征向量i在主题特征库中的权值,R代表主题特征向量,SIM(Pj , R)表示链接文本Pi的相关度。3.4.3爬虫的抓取算法如下:(1)将初始页面
13、url集合放进等待队列,分配每个url一个相关性消息值m,并给每个url同样的相关度值。这个相对于后面将要计算到的值较大。初始页面会人为根据主题进行筛选,所以与主题的紧密度高。人为的给定一个高的相关度值优点有两个,首先,减少爬虫的计算量,这些种子站点不需要通过相关度的计算。其次,可以在等待队列中置于较靠前的位置,在以后的更新过程中,可以优先更新。(2)对等待队列中的url,先根据m值大小排序,再根据相关度的大小排序。(3)根据第二步排好序的等待队列,将排序最前的url拿出放进处理队列,爬虫开始抓取。(4)下载网页到本地磁盘,并建立索引,然后将url地址放进完成队列。(5)利用解析器解析出网页中
14、的链接与对应的链接文本,利用公式1计算链接地址的相 关度值。(6)将第5步得到的相关度值与相关度阀值f进行比拟,其结果分为三种情况:第一种情况是相关度值大于相关度阀值,且父网页的相关性消息m值等于初始值,那么直接传递父网页的m值给子网页。第二种情况是相关度值大于相关度阀值,且父网页的相关性消息m值小于初始值,那么恢复m值为初始值,传递m值给子网页。第三种情况是相关度值小于相关度阀值,那么将父网页的m值乘以遗传基因比例b传递子网页的(b值大于0小于1),子网页的相关性消息值是m*bo(7)将url , m值,相关度值放进等待队列,重复第二步。(8)算法结束。3. PageRank算法PageRa
15、nk算法是由Google公司两个创始人Sergey及LarryPage提出的一种搜索引擎 排序算法。先给每个网页赋予一个PageRank值,那么对于用户查询串分词后得到关键字的集合,Q = ,通过搜索引擎中的索引器,得到一个匹配的网页集合PageSet=,然后对中的网页按PageRank值上下进行排 序,把排序高的前面K个网页返回给用户。3.1 PageRank(p)计算公式PageRank是基寸 二这样一个假设:从许多优质的网页上链接过来的网页,必定也是优 质网页。它的特点跟用户的查询过程是不相关的,而跟网页之间的链接结构相关,这个值一般是预先计算好的。它赋予每一个网页p一个特定的Rank值
16、,记为PageRank(p),计算公式为:冲 53 (1_C)+CVE*如*3)尸MIp由此可见,某个网页文件的PageRank值为所有链入该网页的其他网页的PageRank值除以它们各自的链出网页个数(网页出度)的和。A表示所有指向网页p的网页集合,|P|表示网页p的链出网页个数。PageRank(p)的值跟网页p链入网页个数、网页p链入网页的链 出网页个数以及网页p链入网页的质量(重要性)这三个因素有关。基于这样一个假设:一个用户随机地访问网络,该用户到达一个随机网页文件的概率为c,或者随机地沿着一个链接返回到已访问网页文件的概率为1-c ,同时假设该用户不会沿着刚刚的访问网页链接返回到已
17、访问过的网页文件。3.2 PageRank的计算方法一一藉法转化公式为 lim Anx 的值,其中矩阵 A 为A=CP(1 -C)eW/m以下做算法举例:1)对网页链接关系进行简化,建立一个网页间的链接关系的模型。用矩阵P表示这个链接关系, 如果页面i向页面j有链接情况,那么pij = 1,否那么pij = 0。如果网页文件总数为N,那么这个网页链接矩阵就是一个一行N列的矩阵。 设有三个网0 1 1页A、B、C,A链接B、C,B链接C,C链接A、B,那么p = 0 0 1。2)将这个一行N列的矩阵P进行倒置操作,并把各个列矢量除以它们各自的链接网页个数,就得到了PageRank矩阵。转换后的矩
18、阵也常常称为推移概率行列,一般记为01/21/2p = 001。1/2 1/201/3 1/3 1/33) A 矩阵计算过程。易知 eS/m = 1/3 1/3 1/3设C=0.5,得到1/3 1/3 1/31/65/12 5/12A= 1/61/62/3.5/12 5/121/64)循环迭代计算PageRankt令每个网页的初始PageRank的值均为1,乂丁=(1,1,1).比拟x与b的值,如果差异较大,那么将b赋给x,继续计算。反复迭代,直到最后两次的结果近 似或相同,那么迭代结束。用籍法计算PageRankPageRank 总是收敛的,即计算的次数为有限次。3.33.3 . . Ran
19、kRank 数值的含义有许多可以查询 PageRankPageRank 的工具或网页,会给出一个 1 11010 分的数字,数字越高,RankRank 就越高,具体含义如表 1 1 所示。表 1 1 RankRank 数值的含义RankRank 数值含 义表示目前没有太多外部链接连到此网站;但不意味此网站在GoogleGoogle 上排名就一。2 2定很低。假设此网页讨论的主题够专业,范围够狭窄,很有可能网友在GoogleGoogle 上面搜寻时,此网页可以排名在很前面一般经营两年以上的网站大多能到达这个成绩;这是很不错的成绩,但是在热门3 3搜寻领域里的排名不会很理想4 4能到达这个数字,证
20、明链接到此的网站外部连接“质、“量俱佳。不仅链接到此网站的网站数多,而且链接到此网站本身的PageRankPageRank 也相当高5 5表示有不少权威性的重量级网站链接到此网站;通常GoogleGoogle 内部会自定义一些它们认为特别重要的网站,如果某一网站能取得这些网站的链接,RankRank 分数就会上升得很快,相应的排名得到提升6 6能突破 5 5 到 6 6 的网站非常少,如果此网站到达 5 5 或 6,6,说明此网站有很不错的知名度 的大站,而且此网站的反向链接够多也够重量7 71010能够到达这个级别的网站相对于整个网络来说极少4.程序及算法实验4.1宽度crawler应用程序
21、根据上面的原理,进行爬虫的的设计。对应上面的流程图,简易爬虫由下面几个类组成,各个类职责如下:Queue.java:实现了一个简单的队列,在LinkDB.java中使用了此类。LinkDB.java :用来保存已经访问的url和待爬取的url的类,提供url出队入队操作。FileDownloader.java:用来下载url所指向的网页。HtmlParserTool.java :用来解析网页文本。LinkFilter.java:一个接口,实现其accept()方法用来对抽取的链接进行过滤。Crawler.java :爬虫的主方法入口所在的类,实现爬取的主要流程。4.24.2 主题爬虫的设计根据上述算法过程,进行了实验验证。设计实验思路过程如下:在宽度crawler应用程序的根底上,实现了对某一主题的过滤选择。在本实验验证中以:/gongyi.sina/gyzx/2021-12-20/120222715.html的为种子,先用FileDownLoader类下载其到本地,MyCrawler类解析出种子页中与主题新浪公益相关的Url,并将其依次下载到本地文件夹下。最后GetTitleByFile类通过分析刚刚下载
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030智慧农业土壤监测行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030智慧养老机构服务创新方向研究及相关政策扶持措施探讨
- 2025-2030智慧公交行业运营现状分析及服务智能化规划评估指南
- 知识管理在企业可持续发展中的应用
- 移动学习资源开发-第3篇
- 北京市电力行业培训合同范本合同二篇
- 工艺安装工程施工方案
- 前交叉韧带过顶位重建技术共识解析2026
- 2026年中药调理内分泌实践技能卷及答案(专升本版)
- 2026年智能化控制系统的设计与实现
- 《食品安全地方标准-生驼乳》(DBS-65-010-2023)
- 【沙利文公司】2024年中国银发经济发展报告
- JT-T-1344-2020纯电动汽车维护、检测、诊断技术规范
- 系统思维与系统决策:系统动力学智慧树知到期末考试答案2024年
- 中国电信安徽公司校园招聘试卷
- 2023学年完整公开课版耐久跑说课
- 足球传球与跑位配合技巧:传跑结合破解对手防线
- 《水泥搅拌桩》课件
- 数独培训课件
- GB/T 470-2008锌锭
- 鲧禹治水课件
评论
0/150
提交评论