版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中国矿业大学计算机学院2014级本科生课程报告课程名称应用软件开发实践报告时间2017.6.28学生姓名朱少杰、胥铁馨学 号、专 业14级计科6班任课教师 徐慧应用软件开发实践课程报告任课教师评语任课教师评语(对课程基础理论的掌握;对课程知识应用能力的评价;对课程报告相关实验、 作品、软件等成果的评价;课程学习态度和上课纪律;课程成果和报告工作量;总体评价和成绩; 存在问题等):成绩:任课教师签字:成绩:应用软件开发实践课程报告摘要网络爬虫(Web Crawler),通常被称为爬虫,是搜索引擎的重要组成部分。随着信息技术 的飞速进步,作为搜索引擎的一个组成部分一一网络爬虫,一直是研究的热点,它
2、的好坏 会直接决定搜索引擎的未来。目前,网络爬虫的研究包括Web搜索策略研究的研究和网络 分析的算法,两个方向,其中在Web爬虫网络搜索主题是一个研究方向,根据一些网站的 分析算法,过滤不相关的链接,连接到合格的网页,并放置在一个队列被抓取。 把互联 网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的 链接地址来寻找网页,从网站某一个页面(通常是首页)开始,读取网页的内容,找到在 网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直 到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络爬虫 就可以用这个原理把互联网
3、上所有的网页都抓取下来。关键词:网络爬虫;Java;多线程;MySQL; Webmagic; CsdnblogABSTRACTWeb Crawler, usually called Crawler for short, is an important part of search engine. With the high-speed development of information, Web Crawler- the search engine can not lack of- which is a hot research topic those years. The quality
4、of a search engine is mostly depended on the quality of a Web Crawler. Nowadays, the direction of researching Web Crawler mainly divides into two parts: one is the searching strategy to web pages; the other is the algorithm of analysis URLs. Among them, the research of Topic-Focused Web Crawler is t
5、he trend. It uses some webpage analysis strategy to filter topic-less URLs and add fit URLs into URL-WAIT queue. The metaphor of a spider web internet, then Spider spider is crawling around on the Internet. Web spider through web link address to find pages, starting from a one page website (usually
6、home), read the contents of the page, find the address of the other links on the page, and then look for the next Web page addresses through these links, so has been the cycle continues, until all the pages of this site are crawled exhausted. If the entire Internet as a site, then you can use this W
7、eb crawler principle all the pages on the Internet are crawling down.Keywords:Web crawler; Java; Multithreading; MySQL; Webmagic; Csdnblog TOC o 1-5 h z HYPERLINK l bookmark10 o Current Document .网络爬虫的简介1定义1 HYPERLINK l bookmark12 o Current Document 产生背景1组成1 HYPERLINK l bookmark14 o Current Document
8、 分类2 HYPERLINK l bookmark16 o Current Document 通用网络爬虫2 HYPERLINK l bookmark18 o Current Document 焦网络爬虫2 HYPERLINK l bookmark20 o Current Document 增量式网络爬虫2 HYPERLINK l bookmark22 o Current Document Deep Web 爬虫2 HYPERLINK l bookmark24 o Current Document 发展趋势3 HYPERLINK l bookmark26 o Current Document
9、.环境需求及配置3 HYPERLINK l bookmark28 o Current Document Java版本及配置3 HYPERLINK l bookmark30 o Current Document Eclipse 酉己置5 HYPERLINK l bookmark32 o Current Document Maven 酉己置6 HYPERLINK l bookmark34 o Current Document .网络爬虫模型的具体设计9 HYPERLINK l bookmark36 o Current Document 框架 webmagic9 HYPERLINK l bookma
10、rk38 o Current Document WebMagic 概览9 HYPERLINK l bookmark40 o Current Document Webmagic 总体架构9 HYPERLINK l bookmark44 o Current Document Webmagic 项目组成10 HYPERLINK l bookmark58 o Current Document 网页搜索策略11 HYPERLINK l bookmark60 o Current Document 拓扑分析算法11 HYPERLINK l bookmark62 o Current Document 网页内容
11、分析算法12 HYPERLINK l bookmark64 o Current Document 爬行策略13爬虫的配置17 HYPERLINK l bookmark66 o Current Document 页面元素的抽取21XPath21 HYPERLINK l bookmark82 o Current Document CSS 选择器22 HYPERLINK l bookmark84 o Current Document 正则表达式22 HYPERLINK l bookmark86 o Current Document 链接的发现22 HYPERLINK l bookmark88 o C
12、urrent Document 具体代码实现22 HYPERLINK l bookmark90 o Current Document CsdnblogPageProcessor.java22App.java.26 HYPERLINK l bookmark92 o Current Document .导入MySQL数据库27 HYPERLINK l bookmark94 o Current Document MySQL 简介27 HYPERLINK l bookmark96 o Current Document MySQL的安装及配置28 HYPERLINK l bookmark114 o Cu
13、rrent Document 安装 MySQLWorkbench32 HYPERLINK l bookmark122 o Current Document 编写链接数据库文件36应用软件开发实践课程报告一.网络爬虫的简介定义网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐 者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用 的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。产生背景随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一 个巨大的挑战。搜索引擎(Search Engine),例如传统的通用搜索引擎A
14、ltaVista,Yahoo!和 Google等,作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是, 这些通用性搜索引擎也存在着一定的局限性,如:不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结 果包含大量用户不关心的网页。通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网 络数据资源之间的矛盾将进一步加深。万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不 同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力, 不能很好地发现和获取。通用搜索引擎大多提供基于关键字的检索
15、,难以支持根据语义信息提出的查询。为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载 网页的程序,它根据既定的抓取目标,有选择的访问万维网上的网页与相关的链接,获取所 需要的信息。与通用爬虫(general purpose web crawler)不同,聚焦爬虫并不追求大的覆盖, 而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。组成在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三部分组成。控制器的主要工 作是负责给多线程中的各个爬虫线程分配工作任务。解析器的主要工作是下载网页,进行页 面的处理,主要是将一些JS脚本标签、CS
16、S代码内容、空格字符、HTML标签等内容处理 掉,爬虫的基本工作是由解析器完成。资源库是用来存放下载到的网页资源,一般都采用大 型的数据库存储,如Oracle数据库,并对其建立索引。控制器控制器是网络爬虫的中央控制器,它主要是负责根据系统传过来的URL链接,分配一线程, 第1页应用软件开发实践课程报告然后启动线程调用爬虫爬取网页的过程。解析器解析器是负责网络爬虫的主要部分,其负责的工作主要有:下载网页的功能,对网页的文本 进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据功能。资源库主要是用来存储网页中下载下来的数据记录的容器,并提供生成索引的目标源。中大型的数 据库产品有:Oracl
17、e、Sql Server等。分类通用网络爬虫通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行对象从一些种子URL扩 充到整个Web,主要为门户站点搜索引擎和大型Web服务提供商采集数据。由于商业 原因,它们的技术细节很少公布出来。这类网络爬虫的爬行范围和数量巨大,对于爬行速 度和存储空间要求较高,对于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多, 通常采用并行工作方式,但需要较长时间才能刷新一次页面。虽然存在一定缺陷,通用网 络爬虫适用于为搜索引擎搜索广泛的主题,有较强的应用价值。焦网络爬虫聚焦网络爬虫(Focused Crawler),又称主题网络爬虫(To
18、pical Crawler),是指选 择性地爬行那些与预先定义好的主题相关页面的网络爬四8。和通用网络爬虫相比,聚焦 爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,保存的页面也由于数量 少而更新快,还可以很好地满足一些特定人群对特定领域信息的需求。增量式网络爬虫增量式网络爬虫(Incremental Web Crawler)是指对已下载网页采取增量式更 新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面 是尽可能新的页面。和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的 时候爬行新产生或发生更新的页面,并不重新下载没有发生变化的页面,可有
19、效减少数据 下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度 和实现难度。增量式网络爬虫的体系结构包含爬行模块、排序模块、更新模块、本地页面 集、待爬行URL集以及本地页面URL集。Deep Web 爬虫Web页面按存在方式可以分为表层网页(Surface Web)和深层网页(Deep Web,也称Invisible Web Pages或Hidden Web)。表层网页是指传统搜索引擎可以索引的页第2页应用软件开发实践课程报告面,以超链接可以到达的静态网页为主构成的Web页面。Deep Web是那些大部分内容 不能通过静态链接获取的、隐藏在搜索表单后的,只有用户
20、提交一些关键词才能获得的 Web页面。例如那些用户注册后内容才可见的网页就属于Deep Web。2000年Bright Planet指出:Deep Web中可访问信息容量是Surface Web的几百倍,是互联网上最大、 发展最快的新型信息资源。发展趋势目前,大多数的搜索引擎都是基于关键词的搜索引擎。基于关键字匹配的搜索技术有较大的 局限性:首先,它不能区分同形异义。其次,不能联想到关键字的同义词。Web商业化 至今,搜索引擎始终保持着网络上被使用最多的服务项目的地位,然而,随着网上内容的爆 炸式增长和内容形式花样的不断翻新,搜索引擎越来越不能满足挑剔的网民们的各种信息需 求。 搜索引擎的发展
21、面临着两大难题:一是如何跟上Internet的发展速度,二是如何为用 户提供更精确的查询结果。所以,传统的引擎不能适应信息技术的高速发展,新一代智能 搜索引擎作为一种高效搜索引擎技术的在当今的网络信息时代日益引起业界人士的关注。搜 索引擎己成为一个新的研究、开发领域。因为它要用到信息检索、人工智能、计算机网络、 分布式处理、数据库、数据挖掘、数字图书馆、自然语言处理等多领域的理论和技术,所以 具有综合性和挑战性。又由于搜索引擎有大量的用户,有很好的经济价值,所以引起了世 界各国计算机科学界和信息产业界的高度关注,目前的研究、开发十分活跃,并出现了很多 值得注意的动向。二.环境需求及配置Java
22、版本及配置应用软件开发实践课程报告图1 Java版本号其甫桀蛇芟至X变量/时:2LASSPATH主呈面V):. ;,四 区:H L】尸!A% a_l 心卜L! 一/二。匚 s 足 r浏览目前口)洌.送走取消图2 Java配置一X费量/时:AVA_HOME立呈面%:浏览目割口). J 七引rrJ小gi北1鬻浏贤文件现定取消图3Java配置二应用软件开发实践课程报告编辑环境玄厘X| %System Roat%syst em32新建(Nj%SystemRjoot%Sy5tem Rout 颊System 3 2Wbem%SSTEM R O0T9fcSystem 32Wind ws -owe r5hel
23、ly1.tA相宿旧C:Program FileBJavajdki .7.0_BOfciin浏览删除C;Program F i 1 esUavajreTMjin %L1AVEN_HOME%birD:My5QLmysql 5.7.17-winY64tiin上移U)下第0确定取消_|图4 Java配置三Eclipse 配置下载Eclipse压缩包,并将Eclipse压缩包解压区忤h,主R共:V2012015/ira a照.3GD fE HTML Do.-13 KBJOiyi/Za#Hfl .35De HTML Do.5 KBms日冲*归国归司. 3*mnh 产韭 g国仃内街BMi T-efr*由印咕
24、国i皿, 1 KLfeatw2017/6/21 BMijfpi2017/6/21 BMi.里什*2017/6/21 BMiFileRjKVr-wdnip国i皿J irdipwip婚庆Kt现 1#1,如 BMi曜文F1史PtifKt5 jitM2017/6/21 BMi蛇叮党史画 Epv/u2012fW 早阕| Ertpwjri2O17/WZ1 早用叁 OneDnw,I Ertpwc.Exe-HHWW早阕1 f u + 1 * 55 23 edlpe Ep*-sflO.html no1ire.html MS1340图5解压后应用软件开发实践课程报告Maven 配置下载maven的bin,在apa
25、che官方网站可以下载。I jOJHavei) 3.0.5Ths is a stable mcEet 3.0.x of Maven far pr-jert ttiat cant iparade tn Mavsn 3.1 yW.MafanL日eery tar.oz)apactiibiiri.tar.gzapache dYiavcn J.D.5 tin.tar.gzjridSaoiaaic maven MO.M tin.nr.gz.35CMartenBinary zip;padic maMcn 3.C J iiin.sipparhe iayEn3.D.S In.7ra.rrbdS中achE E收n
26、 三口.三 birLzip.ascMaven 3.11.5 i&aLFce tar.gz)apsdie-fnavenS.C. S-srE.tsr-Dzapactie-Eclipse Marketplace应用软件开发实践课程报告搜索关键字maven到插件Maven Integration for Eclipse并点击安装即可,如下图:2 Eclipse MarketplaceEclipse MairketplacoSelect solutions to instalL Press Finish t口 proceed with installation.Press the information
27、 button to see a detailed overview and a link to mare iinformation,X士史3匚卜 Recent Popular Installed 耳 Language Server Protacal 1 DI (May Newsl.Finch | mavenAHI Markets7 应用软件开发实践课程报告搜索关键字maven到插件Maven Integration for Eclipse并点击安装即可,如下图:2 Eclipse MarketplaceEclipse MairketplacoSelect solutions to insta
28、lL Press Finish t口 proceed with installation.Press the information button to see a detailed overview and a link to mare iinformation,X士史3匚卜 Recent Popular Installed 耳 Language Server Protacal 1 DI (May Newsl.Finch | mavenAHI Markets7 All CategoriesTycho Build Tools 0,4.1The tyciho build tools help i
29、n tmnawenizing1 your existing OSGi project Simce th史 nManifest firstT approach of tycho still has some loose ends the rTycho Builds, m&re iriifQbylBH SYSTEMS GmbH. EPL t产 h 口 Emvwm Installs: 11.7K (439 last month)InstallMaven Tycho Utilitnes 1.0.0UVe have been helping our client mnigrate to inaven t
30、ycho, and the biggest prablem that we face i与 when filling the parent pom to remember the maven-tycho plwgK, nnom infoby ANOT CONSULTING. EPLEarvEin 口1日用昭n tyczh口 build utilities rclipse build- Installs: 2&1K (1,236 Im与t month)InstallMaven Integration for Eclipse (Luna) 1=5.0m2e provides comprehensi
31、ve Maven inte-gration for Eclipse, Vou can use nnNe tomnAmp hnth -=simnlp nrl miilH-mnrliiIip Havph nrniprt5. PYpnitA UKinpin hi iiIHrMarketplacesFinishCancel图9在Eclipse中配置maven重启后,为了使得Eclipse中安装的Maven插件,同windows中安装的那个相同,需要让 eclipse 中的 maven 重新定位一下,点击 Window - Preference - Maven - Installation - Add进
32、行设置应用软件开发实践课程报告Preferences.图10配置二三.网络爬虫模型的具体设计框架 webmagicWebMagic 概览WebMagic项目代码分为核心和扩展两部分。核心部分(webmagic-core)是一个精简 的、模块化的爬虫实现,而扩展部分则包括一些便利的、实用性的功能。WebMagic的架 构设计参照了 Scrapy,目标是尽量的模块化,并体现爬虫的功能特点。Webmagic 总体架构WebMagic 的结构分为 Downloader、PageProcessor、Scheduler、Pipeline 四大组件, 并由Spider将它们彼此组织起来。这四大组件对应爬虫生
33、命周期中的下载、处理、管理和 持久化等功能。WebMagic的设计参考了 Scapy,但是实现方式更Java化一些。而Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider 是一个大的容器,它也是WebMagic逻辑的核心。WebMagic总体架构图如下:应用软件开发实践课程报告SpiderRetjuestUI L! Mi*能SpiderRetjuestUI L! Mi*能图11 WebMagic总体架构3.1.3 Webmagic 项目组成WebMagic项目代码包括几个部分,在根目录下以不同目录名分开。它们都是独立的Maven 项目。主要部分WebMag
34、ic主要包括两个包,这两个包经过广泛实用,已经比较成熟:webmagic-corewebmagic-core是WebMagic核心部分,只包含爬虫基本模块和基本抽取器。WebMagic-core 的目标是成为网页爬虫的一个教科书般的实现。webmagic-extensionwebmagic-extension是WebMagic的主要扩展模块,提供一些更方便的编写爬虫的工具。包括注解格式定义爬虫、JSON、分布式等支持。外围功能除此之外,WebMagic项目里还有几个包,这些都是一些实验性的功能,目的只是提供一 些与外围工具整合的样例。因为精力有限,这些包没有经过广泛的使用和测试,推荐使 用方式
35、是自行下载源码,遇到问题后再修改。webmagic-samples第10页应用软件开发实践课程报告这里是作者早期编写的一些爬虫的例子。因为时间有限,这些例子有些使用的仍然是老 版本的API,也可能有一些因为目标页面的结构变化不再可用了。最新的、精选过的例子, 请看 webmaigc-core 的 cessor.example 包和 webmaigc-core 的 us.codecraft.webmagic.example 包webmagic-scriptsWebMagic对于爬虫规则脚本化的一些尝试,目标是让开发者脱离Java语言,来进行简单、 快速的开发。同时强调脚本的共享。webmagic
36、-seleniumWebmMgic与Selenium结合的模块。Selenium是一个模拟浏览器进行页面渲染的工具,WebMagic依赖Selenium进行动态页面的抓取。webmagic-saxonWebMagic与Saxon结合的模块。Saxon是一个XPath、XSLT的解析工具,webmagic依赖 Saxon来进行XPath2.0语法解析支持。webmagic-avalonwebmagic-avalon是一个特殊的项目,它想基于WebMagic实现一个产品化的工具,涵盖 爬虫的创建、爬虫的管理等后台工具。网页搜索策略广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一
37、层次的搜索。 该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用广度优先搜索方法。 也有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在一 定链接距离内的网页具有主题相关性的概率很大。另外一种方法是将广度优先搜索与网页过 滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺 点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。拓扑分析算法基于网页之间的链接,通过已知的网页或数据,来对与其有直接或间接链接关系的对象(可 以是网页或网站等)作出评价的算法。又分为网页粒度、网站粒度和网页块粒度这三种。1网页(
38、Webpage)粒度的分析算法PageRank和HITS算法是最常见的链接分析算法,两者都是通过对网页间链接度的递归和 规范化计算,得到每个网页的重要度评价。PageRank算法虽然考虑了用户访问行为的随机 性和Sink网页的存在,但忽略了绝大多数用户访问时带有目的性,即网页和链接与查询主 题的相关性。针对这个问题,HITS算法提出了两个关键的概念:权威型网页(authority) 和中心型网页(hub)。第11页应用软件开发实践课程报告基于链接的抓取的问题是相关页面主题团之间的隧道现象,即很多在抓取路径上偏离主题的 网页也指向目标网页,局部评价策略中断了在当前路径上的抓取行为。文献21提出了
39、一种 基于反向链接(BackLink)的分层式上下文模型。0巾6近Model),用于描述指向目标网页 一定物理跳数半径内的网页拓扑图的中心Layer0为目标网页,将网页依据指向目标网页的 物理跳数进行层次划分,从外层网页指向内层网页的链接称为反向链接。2网站粒度的分析算法网站粒度的资源发现和管理策略也比网页粒度的更简单有效。网站粒度的爬虫抓取的关键之 处在于站点的划分和站点等级(SiteRank)的计算。SiteRank的计算方法与PageRank类似, 但是需要对网站之间的链接作一定程度抽象,并在一定的模型下计算链接的权重。网站划分情况分为按域名划分和按IP地址划分两种。文献18讨论了在分布
40、式情况下,通 过对同一个域名下不同主机、服务器的IP地址进行站点划分,构造站点图,利用类似 PageRank的方法评价SiteRank。同时,根据不同文件在各个站点上的分布情况,构造文 档图,结合SiteRank分布式计算得到DocRank。文献18证明,利用分布式的SiteRank 计算,不仅大大降低了单机站点的算法代价,而且克服了单独站点对整个网络覆盖率有限的 缺点。附带的一个优点是,常见PageRank造假难以对SiteRank进行欺骗。3网页块粒度的分析算法在一个页面中,往往含有多个指向其他页面的链接,这些链接中只有一部分是指向主题相关 网页的,或根据网页的链接锚文本表明其具有较高重要
41、性。但是,在PageRank和HITS算 法中,没有对这些链接作区分,因此常常给网页分析带来广告等噪声链接的干扰。在网页块 级别(Block level)进行链接分析的算法的基本思想是通过VIPS网页分割算法将网页分为不 同的网页块(page block),然后对这些网页块建立page to block和block to page的链接矩 阵,分别记为Z和X。于是,在page to page图上的网页块级别的PageRank为?Wp=XxZ; 在block to block图上的BlockRank为Wb=ZxXE经有人实现了块级别的PageRank和 HITS算法,并通过实验证明,效率和准确率
42、都比传统的对应算法要好。网页内容分析算法基于网页内容的分析算法指的是利用网页内容(文本、数据等资源)特征进行的网页评价。 网页的内容从原来的以超文本为主,发展到后来动态页面(或称为Hidden Web)数据为主, 后者的数据量约为直接可见页面数据(PIW,Publicly Indexable Web)的400500倍。另 一方面,多媒体数据、Web Service等各种网络资源形式也日益丰富。因此,基于网页内容 的分析算法也从原来的较为单纯的文本检索方法,发展为涵盖网页数据抽取、机器学习、数 据挖掘、语义理解等多种方法的综合应用。本节根据网页数据形式的不同,将基于网页内容 的分析算法,归纳以下
43、三类:第一种针对以文本和超链接为主的无结构或结构很简单的网页; 第二种针对从结构化的数据源(如RDBMS)动态生成的页面,其数据不能直接批量访问; 第三种针对的数据界于第一和第二类数据之间,具有较好的结构,显示遵循一定模式或风格, 且可以直接访问。基于文本的网页分析算法1)纯文本分类与聚类算法第12页应用软件开发实践课程报告很大程度上借用了文本检索的技术。文本分析算法可以快速有效的对网页进行分类和聚类, 但是由于忽略了网页间和网页内部的结构信息,很少单独使用。2)超文本分类和聚类算法根据网页链接网页的相关类型对网页进行分类,依靠相关联的网页推测该网页的类型爬行策略下述的三种网络特征,造成了设计
44、网页爬虫抓取策略变得很难:它巨大的数据量;它快速的更新频率;动态页面的产生它们三个特征一起产生了很多种类的爬虫抓取链接。巨大的数据量暗示了爬虫,在给定的时间内,只可以抓取所下载网络的一部分,所以,它需 要对它的抓取页面设置优先级;快速的更新频率说明在爬虫抓取下载某网站一个网页的时 候,很有可能在这个站点又有新的网页被添加进来,或者这个页面被更新或者删除了。最近新增的很多页面都是通过服务器端脚本语言产生的,无穷的参数组合也增加了爬虫抓取 的难度,只有一小部分这种组合会返回一些独特的内容。例如,一个很小照片存储库仅仅通 过get方式可能提供就给用户三种操作方式。如果这里存着四种分类方式,三种缩略图
45、方式, 两种文件格式,和一个禁止用户提供内容的选项,那么,同样的内容就可以通过48种方式 访问。这种数学组合给网络爬虫创造的难处就是,为了获取不同的内容,他们必须筛选无穷 仅有微小变化的组合。正如爱德华等人所说的:“用于检索的带宽不是无限的,也不是免费的;所以,如果引入衡 量爬虫抓取质量或者新鲜度的有效指标的话,不但伸缩性,连有效性都将变得十分必要”(爱 德华等人,2001年)。一个爬虫就必须小心的选择下一步要访问什么页面。网页爬虫的行为 通常是四种策略组合的结果。选择策略,决定所要下载的页面;重新访问策略,决定什么时候检查页面的更新变化;平衡礼貌策略,指出怎样避免站点超载;并行策略,指出怎么
46、协同达到分布式抓取的效果;选择策略:就现在网络资源的大小而言,即使很大的搜索引擎也只能获取网络上可得到资源的一小部 分。由劳伦斯河盖尔斯共同做的一项研究指出,没有一个搜索引擎抓取的内容达到网络的 16%(劳伦斯河盖尔斯,2001)。网络爬虫通常仅仅下载网页内容的一部分,但是大家都还是 强烈要求下载的部分包括最多的相关页面,而不仅仅是一个随机的简单的站点。这就要求一个公共标准来区分网页的重要程度,一个页面的重要程度与他自身的质量有关, 与按照链接数、访问数得出的受欢迎程度有关,甚至与他本身的网址(后来出现的把搜索放 在一个顶级域名或者一个固定页面上的垂直搜索)有关。设计一个好的搜索策略还有额外的
47、 困难,它必须在不完全信息下工作,因为整个页面的集合在抓取时是未知的。第13页应用软件开发实践课程报告Cho等人(Cho et al, 1998)做了第一份抓取策略的研究。他们的数据是斯坦福大学网站 中的18万个页面,使用不同的策略分别模仿抓取。排序的方法使用了广度优先,后链计数, 和部分pagerank算法。计算显示,如果你想要优先下载pagerank高的页面,那么,部分 PageRank策略是比较好的,其次是广度优先和后链计数。并且,这样的结果仅仅是针对一 个站点的。Najork和Wiener (Najork and Wiener, 2001采用实际的爬虫,对3.28亿个网页,采用广度 优
48、先研究。他们发现广度优先会较早的抓到PageRank高的页面(但是他们没有采用其他 策略进行研究)。作者给出的解释是:“最重要的页面会有很多的主机连接到他们,并且那些 链接会较早的发现,而不用考虑从哪一个主机开始。”Abiteboul (Abiteboul等人,2003),设计了一种基于OPIC (在线页面重要指数)的抓取战 略。在OPIC中,每一个页面都有一个相等的初始权值,并把这些权值平均分给它所指向的 页面。这种算法与Pagerank相似,但是他的速度很快,并且可以一次完成。OPIC的程序 首先抓取获取权值最大的页面,实验在10万个幕指分布的模拟页面中进行。并且,实验没 有和其它策略进行
49、比较,也没有在真正的WEB页面测试。Boldi等人(Boldi et al., 2004)的模拟检索实验进行在 从.it网络上取下的4000万个页面和从 webbase得至勺1亿个页面上,测试广度优先和深度优先,随机序列和有序序列。比较的 基础是真实页面pageRank值和计算出来的pageRank值的接近程度。令人惊奇的是,一 些计算pageRank很快的页面(特别明显的是广度优先策略和有序序列)仅仅可以达到很小 的接近程度。Baeza-Yates等人(Baeza-Yates et al., 2005)在从.gr域名和.cl域名子网站上获取的300万 个页面上模拟实验,比较若干个抓取策略。结
50、果显示OPIC策略和站点队列长度,都比广度 优先要好;并且如果可行的话,使用之前的爬行抓取结果来指导这次抓取,总是十分有效的。 Daneshpajouh等人(Daneshpajouh et al., 2008设计了一个用于寻找好种子的社区。它们从 来自不同社区的高PageRank页面开始检索的方法,迭代次数明显小于使用随机种子的检 索。使用这种方式,可以从以前抓取页面之中找到好的种子,使用这些种子是十分有效的。 限定访问链接一个爬虫可能仅仅想找到html页面的种子而避免其他的文件类型。为了仅仅得到html的资 源,一个爬虫可以首先做一个http head的请求,以在使用request方法获取所
51、有的资源之 前,决定这个网络文件的类型。为了避免要发送过多的head请求,爬虫可以交替的检查url 并且仅仅对以html, htm和反斜杠结尾的文件发送资源请求。这种策略会导致很多的html 资源在无意中错过,一种相似的策略是将网络资源的扩展名同已知是html文件类型的一组 扩展名(如.html,.htm,.asp,.php,.aspx反斜杠)进行比较。一些爬虫也会限制对任何含有“? ”的资源(这些是动态生成的)进行获取请求,以避免蜘蛛 爬行在某一个站点中陷入下载无穷无尽的URL的困境。路径检索一些爬虫会尽可能多的尝试下载一个特定站点的资源。Cothey(Cothey,2004)引入了一种路
52、径检索的爬虫,它会尝试抓取需要检索资源的所有URL。例如,给定一个种子地址:它将 会尝试检索/hamster/menkey/,/hamsterD/。Cothey发现路径检索对发现独立资源,或者第14页应用软件开发实践课程报告一些通常爬虫检索不到的的连接是非常有效的。一些路径检索的爬虫也被称为收割机软件,因为他们通常用于收割或者收集所有的内容,可 能是从特定的页面或者主机收集相册的照片。聚焦抓取爬虫所抓取页面的重要程度也可以表述成它与给定查询之间相似程度的函数。网络爬虫尝试 下载相似页面,可以称为聚焦检索或者主题检索。关于主题检索和聚焦检索的概念,最早是 由 Menczer(Menczer 19
53、97; Menczer and Belew, 1998)和 Chakrabarti 等人首先提出来 的 (Chakrabarti et al., 1999)。聚焦检索的主要问题是网页爬虫的使用环境,我们希望在实际下载页面之前,就可以知道给 定页面和查询之间的相似度。一个可能的方法就是在链接之中设置锚点,这就是在早期时候, Pinkerton(Pinkerton,1994)曾经在一个爬虫中采用的策略。Diligenti 等人(Diligenti 等 人,2000)建议使用已经抓取页面的内容去推测查询和未访问页的相似度。一个聚焦查询 的表现的好坏主要依赖于查询主题内容的丰富程度,通常还会依赖页面查
54、询引擎提供的查询 起点。抓取深层的网页很多的页面隐藏的很深或隐藏在在看不到的网络之中。这些页面通常只有在向数据库提交查 询的时候才可以访问到,如果没有链接指向他们的话,一般的爬虫是不能访问到这些页面的。 谷歌站点地图协议和mod oai(Nelson等人,2005)尝试允许发现这些深层次的资源。深层页面抓取器增加了抓取网页的链接数。一些爬虫仅仅抓取形如a href=u链接。某些 情况下,例如Googlebot,WEB抓取的是所有超文本所包含的内容,标签和文本。WEB3.0检索Web3.0为下一代搜索技术定义了更先进的技术和新的准则,可以概括为语义网络和网站模 板解析的概念。第三代检索技术将建立
55、在人机巧妙的联系的基础上。重新访问策略网络具有动态性很强的特性。抓取网络上的一小部分内容可能会花费真的很长的时间,通常 用周或者月来衡量。当爬虫完成它的抓取的任务以后,很多操作是可能会发生的,这些操作 包括新建,更新和删除。从搜索引擎的角度来看,不检测这些事件是有成本的,成本就是我们仅仅拥有一份过时的资 源。最常使用的成本函数,是新鲜度和过时性(2000年,Cho和Garcia-Molina) 新鲜度:这是一个衡量抓取内容是不是准确的二元值。在时间t内,仓库中页面p的新鲜度 是这样定义的:产(e_ fl Ifp* 的比乱岫 的 I壮场1。哂;翡七新鲜度过时性:这是一个衡量本地已抓取的内容过时程
56、度的指标。在时间t时,仓库中页面p的时 效性的定义如下:过时性0直0 is sm 丑闻五姐d工Fmr t过时性-RE港口匕口二 *31。3 p在页面抓取中,新鲜度和过时性的发展第15页应用软件开发实践课程报告Coffman等人(Edward G. Coffman 1998)是从事爬虫对象定义的,他们提出了一个相当 于新鲜度的概念,但是使用了不同的措词:他们建议爬虫必须最小化过时页面部分。他们指 出网络爬行的问题就相当于多个队列,一个投票系统;这里,爬虫是服务器,不同的站点是 队列。页面修改是到达的顾客,页面切换的时间是页面进入一个单一站点的间隔。在这个模 型下,每一个顾客在投票系统的平均时间,
57、相当于爬虫的平均过时性。爬虫的目标是尽可能高的提高页面的新鲜度,同时降低页面的过时性。这一目标并不是完全 一样的,第一种情况,爬虫关心的是有多少页面时过时的;在第二种情况,爬虫关心的页面 过时了多少。两种最简单的重新访问策略是由Cho和Garcia-Molina研究的(劭。和Garcia-Molina, 2003):统一策略:使用相同的频率,重新访问收藏中的所有的链接,而不考虑他们更新频率。正比策略:对变化越多的网页,重新访问的频率也越高。网页访问的频率和网页变化的频率 直接相关。(两种情况下,爬虫的重新抓取都可以采用随机方式,或者固定的顺序)Cho和Garcia-Molina证明了一个出人意
58、料的结果。以平均新鲜度方式衡量,统一策略在模 拟页面和真实的网络抓取中都比正比策略出色。对于这种结果的解释是:当一个页面变化太 快的时候,爬虫将会将会在不断的尝试重新抓取而浪费很多时间,但是却还是不能保证页面 的新鲜度。为了提高页面的新鲜度,我们应该宣判变化太快的页面死罪( Cho和Garcia-Molina, 2003a)。最佳的重新访问策略既不是统一策略,也不是正比策略;保持平均页面新鲜度高 的最佳方法策略包括忽略那些变化太快的页面,而保持页面平均过时性低的方法则是对每一 页按照页面变化率单调变化的策略访问。两种情况下,最佳的策略较正比策略,都更接近统 一策略。正如Coffman等人(Ed
59、ward G.Coffman, 1998)所注意到的:“为了最小化页面 过时的时间,对任一个页面的访问都应该尽可能的均匀间隔地访问。”对于重新访问的详尽 的策略在大体上是不可以达到的,但是他们可以从数学上得到,因为他们依赖于页面的变化。(Cho和Garcia-Molina,2003a)指出指数变化是描述页面变化的好方法,同时(Ipeirotis 等人,2005)指出了怎么使用统计工具去发现适合这些变化的参数。注意在这里的重新访 问策略认为每一个页面都是相同的(网络上所有的页面价值都是一样的)这不是现实的情况, 所以,为了获取更好的抓取策略,更多有关网页质量的信息应该考虑进去。平衡礼貌策略爬虫相
60、比于人,可以有更快的检索速度和更深的层次,所以,他们可能使一个站点瘫痪。不 需要说一个单独的爬虫一秒钟要执行多条请求,下载大的文件。一个服务器也会很难响应多 线程爬虫的请求。就像Koster(Koster,1995)所注意的那样,爬虫的使用对很多工作都是很有用的,但是 对一般的社区,也需要付出代价。使用爬虫的代价包括:网络资源:在很长一段时间,爬虫使用相当的带宽高度并行地工作。服务器超载:尤其是对给定服务器的访问过高时。质量糟糕的爬虫,可能导致服务器或者路由器瘫痪,或者会尝试下载自己无法处理的页第16页应用软件开发实践课程报告面。个人爬虫,如果过多的人使用,可能导致网络或者服务器阻塞。对这些问
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山西财贸职业技术学院单招综合素质考试题库及参考答案详解一套
- 2026年山东化工职业学院单招职业倾向性考试题库汇编
- 2025河南许昌儿童医院护理人员招聘备考历年题库带答案解析
- 2025宁波余姚市疾病预防控制中心(余姚市卫生监督所)编外招聘1人参考试题附答案解析
- 2025年甘肃省临夏州招聘州本级第四批城镇公益性岗位人员14人备考试题附答案解析
- 2026年新疆科信职业技术学院单招职业倾向性测试题库完美版
- 2025年通化县公益性岗位招聘笔试备考试题(78人)附答案解析
- 2025年齐齐哈尔建华区文化街道公益性岗位招聘1人备考试题附答案解析
- 2026年毕节医学高等专科学校单招综合素质考试必刷测试卷及答案1套
- 2026年承德护理职业学院单招综合素质考试题库新版
- 中国著名作家叶圣陶代表作《稻草人》名著知识点梳理作品解析课件
- 2025中医体重管理临床指南
- 工业自动化项目设计合同
- 晋教版七年级上册地理期末试卷1
- 软件开发流程与质量管理手册
- 全国行业职业技能竞赛(电力交易员)考试题库及答案
- 手卫生依从性PDCA的循环管理课件
- (公共题)02中华人民共和国铁路法
- 低压熔断器课件
- 零部件试装报告
- 2022-2023学年北京市西城区人教版五年级上册期末测试数学试卷(无答案和有答案版)
评论
0/150
提交评论