【优】heritrix系统使用最全PPT
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
算法:
将新摘要保存备用
通过注意一个网页的内容摘要是
否与它的‘A_VIA_DIGEST‘内 容摘要相等来判断。
其他标记工作
isUrlVisited
作用:在将链接加入队列之前需要查看链接是否已经 被处理过了。
Heritrix中isUrlVisited 的实现有如下需求:
支持多线程读写,大容量。
P(w|d) = Pmle(w|Md) + (1 – )Pmle(w|Mc)
网站架构、内容的单一使得CCER在某些方面不符合web的一般特性,而且CCER站点与web的规模有很大差距。
PB(owo|lde)an=的邻P是m接l矩e(先w阵|M抓d) + 取(1 – 一)P次mle(网w|Mc页) ,把URI和网页的摘要值保存到Hash表中。 经过抓取网页在得到第的抓二取内次容,抓从中取提取相内容同并根U据R选I定的算法网计算页摘要的值,时一般候是S,HA1和根MD据5算H法,T默T认P为请SHA求1。返回的
处理链
否
策略三
终止 在一个抓取过程中,把当前网页
的摘要值放到Hash表里作为KEY 值,如果当前网页链接到了一个
相同摘要值的网页(KEY值相同) 并且URI不同,就不再抓取和存 储这个网页。
是 标记为新页面
数据结构: currentDigest:当前uri的摘要 A_VIA_DIGEST:前一个uri的属性
HttpRecorder 根据URI创建HttpMethod,区分为POST和GET 经过抓取网页得到的抓取内容,从中提取内容并根据
选定算法计算摘要值,一般是SHA1和MD5算法,默 认为SHA1。
isPageKnown
Heritrix提供了三种网页去重的策略
策略一:
先抓取一次网页,把URI和网页的摘要值保存到Hash表中。 在将入在度 抓与取出过度程的中分获布得图的中网点页之信间息分写布到比Ht较tpR分e散co,rd并er没有如讲义中那样基本在一条直线上。 在第二次抓取相同URI的网页的时候,根据URI索引并比较 上述有关politeness 参数的使用集中在AbstractFrontier 中,用以判断抓取现状,从而采取相应的动作。
content-length来比较第一次记录的content-length是否有变 化,如果有变化则抓取并存储网页,如果没有变化则放弃该 网页。
开始
页面是否下载成功?
查看是否已经标记页 面为重复页面?
取得页面的摘要
取得之前的页面摘 要
新旧摘要是否均为空?
新旧摘要是否相同?
标记页面为重复页 面
忽略剩下的处理链,直 接跳到PostProcessor
heritrix系统代码分析
要求:按Week2 的web crawler 系统结构,寻找 Heritrix系统里 面的crawler的 下面四个部分:
page fetching
isPageKnown isUrlVisited Politeness
分析它们的主 要数据结构和 算法.写一个简 短的报告文档.
ห้องสมุดไป่ตู้erkeleyDB:
实质是一个按照”key/value”方式保存数据的HashTable。它支 持两段锁技术和先写日志策略来保证数据的正确性和一致性, 远比简单的HashTable 的Synchronize 强大。
数据库和应用程序在相同的地址空间中运行,所以不需要和 应用程序进行进程间通信,节省了大量的开销,不会在 isUrlVisited的阶段形成性能瓶颈。
缩短爬取时间: Profiles中setting修改 ”max-delay-ms”、”min-delayms”、”max-retries”、”retry-delay-seconds”的数值, 提高抓取效率 设置-Xmx运行参数增加JVM内存(256M-1024M)
heritrix系统使用
只有一个线程在工作: 原因:Heritrix的url队列以hostname为key,所有相 同key的url放置在同一个队列里面,也就是说同一个 host下面的所有url都放在一个队列里面,当线程获取 url时候,会将该队列放置到同步池中,拒绝其他线程 访问。 思路:将url平均分配到Queue里面,实现更好的多线 程同步, 实现方法:采用ELF hash算法平均分配url。
Page fetching
从Frontier获取到一个URI之后,处理链对URI进行处 理,包括Prefetch,Fetch,Extract,Write,PostPrecess。 其中Fetch主要是完成从web中获取网页。Heritrix提 供了3种Fetch方法:FetchHTTP,FetchFTP,FetchDNS。 FetchDNS 的功能主要是为当前URI 解析域名, FetchHTTP 和FetchFTP 的功能是来抓取数据。
数据结构: CrawlURI 存储一个URI的相关信息 HttpRecorder存储一次 交互过程的获取到的页面信
息或文件信息。HttpRecorder 作为一个ToeThread 参 数将贯穿整个Processor Chain
Page fetching
算法:以FetchHTTP为例
判断能否抓取网页 预处理过程。将在抓取过程中获得的网页信息写到
Page fetching
与之前存在Hash表中的摘要值是不是相同。 谈话间,Bob问:听说现在Language Model很popular,你建的inverted index可以用来支持LM吗?你觉得呢?
Heritrix提供了三种网页去重的策略
策略二: 当使用BdbFrontier的时候,默认使用BdbUriUniqFilter作为alreadyIncluded存储url信息,可选的存储方式还有BloomUriUniqFilter等
习题课 Proj1+hw3
LiYing Dec 2,
heritrix系统使用
要求:配置、安装Heritrix,抓取指定的网站:
限制抓取范围:修改Modules、 Submodules 和 Settings : Select Crawl Scope选择DecidingScope; 用正则表达式完成对抓取的网页的url的匹配; 限定只抓取文本类型的内容,
将新摘要保存备用
通过注意一个网页的内容摘要是
否与它的‘A_VIA_DIGEST‘内 容摘要相等来判断。
其他标记工作
isUrlVisited
作用:在将链接加入队列之前需要查看链接是否已经 被处理过了。
Heritrix中isUrlVisited 的实现有如下需求:
支持多线程读写,大容量。
P(w|d) = Pmle(w|Md) + (1 – )Pmle(w|Mc)
网站架构、内容的单一使得CCER在某些方面不符合web的一般特性,而且CCER站点与web的规模有很大差距。
PB(owo|lde)an=的邻P是m接l矩e(先w阵|M抓d) + 取(1 – 一)P次mle(网w|Mc页) ,把URI和网页的摘要值保存到Hash表中。 经过抓取网页在得到第的抓二取内次容,抓从中取提取相内容同并根U据R选I定的算法网计算页摘要的值,时一般候是S,HA1和根MD据5算H法,T默T认P为请SHA求1。返回的
处理链
否
策略三
终止 在一个抓取过程中,把当前网页
的摘要值放到Hash表里作为KEY 值,如果当前网页链接到了一个
相同摘要值的网页(KEY值相同) 并且URI不同,就不再抓取和存 储这个网页。
是 标记为新页面
数据结构: currentDigest:当前uri的摘要 A_VIA_DIGEST:前一个uri的属性
HttpRecorder 根据URI创建HttpMethod,区分为POST和GET 经过抓取网页得到的抓取内容,从中提取内容并根据
选定算法计算摘要值,一般是SHA1和MD5算法,默 认为SHA1。
isPageKnown
Heritrix提供了三种网页去重的策略
策略一:
先抓取一次网页,把URI和网页的摘要值保存到Hash表中。 在将入在度 抓与取出过度程的中分获布得图的中网点页之信间息分写布到比Ht较tpR分e散co,rd并er没有如讲义中那样基本在一条直线上。 在第二次抓取相同URI的网页的时候,根据URI索引并比较 上述有关politeness 参数的使用集中在AbstractFrontier 中,用以判断抓取现状,从而采取相应的动作。
content-length来比较第一次记录的content-length是否有变 化,如果有变化则抓取并存储网页,如果没有变化则放弃该 网页。
开始
页面是否下载成功?
查看是否已经标记页 面为重复页面?
取得页面的摘要
取得之前的页面摘 要
新旧摘要是否均为空?
新旧摘要是否相同?
标记页面为重复页 面
忽略剩下的处理链,直 接跳到PostProcessor
heritrix系统代码分析
要求:按Week2 的web crawler 系统结构,寻找 Heritrix系统里 面的crawler的 下面四个部分:
page fetching
isPageKnown isUrlVisited Politeness
分析它们的主 要数据结构和 算法.写一个简 短的报告文档.
ห้องสมุดไป่ตู้erkeleyDB:
实质是一个按照”key/value”方式保存数据的HashTable。它支 持两段锁技术和先写日志策略来保证数据的正确性和一致性, 远比简单的HashTable 的Synchronize 强大。
数据库和应用程序在相同的地址空间中运行,所以不需要和 应用程序进行进程间通信,节省了大量的开销,不会在 isUrlVisited的阶段形成性能瓶颈。
缩短爬取时间: Profiles中setting修改 ”max-delay-ms”、”min-delayms”、”max-retries”、”retry-delay-seconds”的数值, 提高抓取效率 设置-Xmx运行参数增加JVM内存(256M-1024M)
heritrix系统使用
只有一个线程在工作: 原因:Heritrix的url队列以hostname为key,所有相 同key的url放置在同一个队列里面,也就是说同一个 host下面的所有url都放在一个队列里面,当线程获取 url时候,会将该队列放置到同步池中,拒绝其他线程 访问。 思路:将url平均分配到Queue里面,实现更好的多线 程同步, 实现方法:采用ELF hash算法平均分配url。
Page fetching
从Frontier获取到一个URI之后,处理链对URI进行处 理,包括Prefetch,Fetch,Extract,Write,PostPrecess。 其中Fetch主要是完成从web中获取网页。Heritrix提 供了3种Fetch方法:FetchHTTP,FetchFTP,FetchDNS。 FetchDNS 的功能主要是为当前URI 解析域名, FetchHTTP 和FetchFTP 的功能是来抓取数据。
数据结构: CrawlURI 存储一个URI的相关信息 HttpRecorder存储一次 交互过程的获取到的页面信
息或文件信息。HttpRecorder 作为一个ToeThread 参 数将贯穿整个Processor Chain
Page fetching
算法:以FetchHTTP为例
判断能否抓取网页 预处理过程。将在抓取过程中获得的网页信息写到
Page fetching
与之前存在Hash表中的摘要值是不是相同。 谈话间,Bob问:听说现在Language Model很popular,你建的inverted index可以用来支持LM吗?你觉得呢?
Heritrix提供了三种网页去重的策略
策略二: 当使用BdbFrontier的时候,默认使用BdbUriUniqFilter作为alreadyIncluded存储url信息,可选的存储方式还有BloomUriUniqFilter等
习题课 Proj1+hw3
LiYing Dec 2,
heritrix系统使用
要求:配置、安装Heritrix,抓取指定的网站:
限制抓取范围:修改Modules、 Submodules 和 Settings : Select Crawl Scope选择DecidingScope; 用正则表达式完成对抓取的网页的url的匹配; 限定只抓取文本类型的内容,