




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
习题课Proj1 hw3 LiYingDec2 2009 heritrix系统使用 要求 配置 安装Heritrix 抓取指定的网站 限制抓取范围 修改Modules Submodules和Settings SelectCrawlScope选择DecidingScope 用正则表达式完成对抓取的网页的url的匹配 限定只抓取文本类型的内容 缩短爬取时间 Profiles中setting修改 max delay ms min delay ms max retries retry delay seconds 的数值 提高抓取效率设置 Xmx运行参数增加JVM内存 256M 1024M heritrix系统使用 只有一个线程在工作 原因 Heritrix的url队列以hostname为key 所有相同key的url放置在同一个队列里面 也就是说同一个host下面的所有url都放在一个队列里面 当线程获取url时候 会将该队列放置到同步池中 拒绝其他线程访问 思路 将url平均分配到Queue里面 实现更好的多线程同步 实现方法 采用ELFhash算法平均分配url heritrix系统代码分析 要求 按Week2的webcrawler系统结构 寻找Heritrix系统里面的crawler的下面四个部分 pagefetchingisPageKnownisUrlVisitedPoliteness分析它们的主要数据结构和算法 写一个简短的报告文档 Pagefetching 从Frontier获取到一个URI之后 处理链对URI进行处理 包括Prefetch Fetch Extract Write PostPrecess 其中Fetch主要是完成从web中获取网页 Heritrix提供了3种Fetch方法 FetchHTTP FetchFTP FetchDNS FetchDNS的功能主要是为当前URI解析域名 FetchHTTP和FetchFTP的功能是来抓取数据 数据结构 CrawlURI存储一个URI的相关信息HttpRecorder存储一次http交互过程的获取到的页面信息或文件信息 HttpRecorder作为一个ToeThread参数将贯穿整个ProcessorChain Pagefetching 算法 以FetchHTTP为例判断能否抓取网页预处理过程 将在抓取过程中获得的网页信息写到HttpRecorder根据URI创建HttpMethod 区分为POST和GET经过抓取网页得到的抓取内容 从中提取内容并根据选定算法计算摘要值 一般是SHA1和MD5算法 默认为SHA1 isPageKnown Heritrix提供了三种网页去重的策略策略一 先抓取一次网页 把URI和网页的摘要值保存到Hash表中 在第二次抓取相同URI的网页的时候 根据URI索引并比较与之前存在Hash表中的摘要值是不是相同 策略二 是先抓取一次网页 把URI和网页的摘要值保存到Hash表中 在第二次抓取相同URI的网页的时候 根据HTTP请求返回的content length来比较第一次记录的content length是否有变化 如果有变化则抓取并存储网页 如果没有变化则放弃该网页 策略三 在一个抓取过程中 把当前网页的摘要值放到Hash表里作为KEY值 如果当前网页链接到了一个相同摘要值的网页 KEY值相同 并且URI不同 就不再抓取和存储这个网页 数据结构 currentDigest 当前uri的摘要A VIA DIGEST 前一个uri的属性算法 org archive crawl extractor TrapSuppressExtractor通过注意一个网页的内容摘要是否与它的 A VIA DIGEST 内容摘要相等来判断 isUrlVisited 作用 在将链接加入队列之前需要查看链接是否已经被处理过了 Heritrix中isUrlVisited的实现有如下需求 支持多线程读写 大容量 BerkeleyDB 实质是一个按照 key value 方式保存数据的HashTable 它支持两段锁技术和先写日志策略来保证数据的正确性和一致性 远比简单的HashTable的Synchronize强大 数据库和应用程序在相同的地址空间中运行 所以不需要和应用程序进行进程间通信 节省了大量的开销 不会在isUrlVisited的阶段形成性能瓶颈 Heritrix的BdbFrontier采用了BerkeleyDB来解决问题 具体做法是将isUrlVisited部分实现为BdbUriUniqueFilter类 isUrlVisited 数据结构 BdbUriUniqFilteralreadySeen数据库 key value 组合 heritrix采用了将url的主机名和整个url分别计算fingerprint 以免破坏url的局部性 算法 当使用BdbFrontier的时候 默认使用BdbUriUniqFilter作为alreadyIncluded存储url信息 可选的存储方式还有BloomUriUniqFilter等Heritrix调用frontier的schedule方法将任何一个url添加到alreadyIncluded中 当url添加进alreadySeen的时候 判断数据库中是否已经有相应的key存在 Politeness 线程资源的约束 通过对politeness设置阈值 Heritrix可以使用以实现抓取对被访问服务器造成的压力的控制 delay factor再次访问服务器应当间隔上次访问服务器时间的倍数min delay ms两次访问同一个服务器最小的时间间隔max delay ms等待服务器响应的最大时间respect crawl delay up to secs当读取robot txt时推迟抓取的时间retry delay seconds两次尝试抓取页面的时间间隔max retries链接尝试最大数上述有关politeness参数的使用集中在AbstractFrontier中 用以判断抓取现状 从而采取相应的动作 Politeness robots txt robots txt声明了网站不想被robot访问的部分 根据抓取得到的robot txt进行文档解析 然后把文档中的内容解析并且传入的crawler的设定当中 把允许和不允许的内容和对应的agent进行比较 并且最后得到本身agent所限定或者不限定的内容 数据结构 Robotstxt 从robots txt中解析出useragent robots指示 即disallow crawl delay allow 并用list和一个对应的map结构存储RobotsHonoringPolicy crawler对robots尊重的5个程度Classic 完全尊重robot txt的限定Ignore 直接跳过robot txt的限制进行抓取custom 用户来定于限制的情况most favored 每一个爬虫有多个user agent 当全部agent都得到权限时才抓取most favored set 对于多个user agent 有一个能够抓取就允许crawler去抓取 Politeness robots txt 2 RobotsDirectives 为每个user agent需要维护一个允许和不允许访问的数据结构 disallows allows记录robot txt中对应的指令RobotsExclusionPolicy 将这些抓取内容的禁止范围的进一步设定到每一个user agent中 在RobotsHonoringPolicy的基础上 实现最终的policy 提供一些接口函数由于并不是每个网站都会存放robots txt这样的文件 在这种情况下Heritrix会花上大量时间试图去访问这样一个文件 大大降低了抓取效率 因此 为了提高抓取效率 可以考虑将对robots txt的访问部分去除 搜集web数据的graphlinkanalysis 要求 回答以下问题 并给出方法的说明这个网站有多少网页 入度 出度分布情况如何 top10的最重要页面是哪些 方法 Pagerank方法 关于PR值收敛的判断 网页数量 17600左右入度 出度以及top10页面情况 基本满足powerlaw分布的特点 获得链接之间的链出关系的方法 方法一 分析crawl log 通过观察crawl log 可以看到url与url之间的关系 从原始的log文件取出链接的目的地址和源地址从相对的链接地址得到绝对地址转换utf 8编码当连接可能存在多个来源 即多个页面中都存在该链接时 crawler log不能提供足够的信息来提供链接之间的关系 获得链接之间的链出关系的方法 方法二 分析抓取得到的网页 从网页中找到链接关系 一种是以网站镜像的方式存储 抓取的页面存储在jobs mirror文件夹下 可以对抓取到的页面源码直接进行分析 解析出每一个页面的链出关系 将文件名映射为链接地址 一种是以arc文件的方式存储 由于arc文件中包含页面内容 可以从arc文件中提取出页面内容 再在页面内容中把它包含的链接提取出来 从页面中提取链接不易实现读取arc文件不易实现 虽然heritrix提供了arcreader方法 但是该方法只能读出arc文件中每个网页的元数据 获得链接之间的链出关系的方法 方法三 修改Heritrix源码 在抓取过程中存储链接关系ExtractorHTML是在HTML页面中抽取链接 在抽取链接之后添加代码 从而将当前页面以及当前页面包含的链接以一定格式输出到文件 利用heritrix抽出链接关系能够控制链接关系的输出格式 从而减少后期处理工作 文件预处理的实现 在出链中去掉不在站点内部的链接 在对没有处理的文件分析时发现很多错误网页都连接到 问题分析 在入度与出度的分布图中点之间分布比较分散 并没有如讲义中那样基本在一条直线上 网站架构 内容的单一使得CCER在某些方面不符合web的一般特性 而且CCER站点与web的规模有很大差距 邻接表 邻接矩阵Boolean的邻接矩阵与 HW week3 1 1PPT23页的例子 矩阵C经过SVD和降维近似映射到了2维平面 请把这个过程做一遍 按PPT上的说明 使用MATLAB很方便 画图也很方便 把5个词映射到LSI空间中 把它们的向量画出来 把查询query boatvoyage 映射到LSI空间中去 把它的向量画出来 查询结果是什么 最后请尝试说明一下LSI空间的这两个维度dim1 dim2大概的含义 答案要点 把矩阵变换的过程写出来 并且画出图来 HW week3 1 2 通过将五个Term映射到LSI空间的公式可以求出这五个词在LSI空间中的映射 查询query boatvoyage 对应的矩阵为 0 1 0 1 0 通过将Query映射到LSI空间的公式可以求出这Query在LSI空间中的映射 HW week3 1 3 查询结果根据向量之间的点乘来计算 点乘值越大则两个向量代表的文档越相关 d1和d5应该排在前面dim1和dim2是比term层次更高的两个特征 可能包含了词的同义 近义等综合因素 如果Query映射的向量与某一个dim很相关 靠得很近 则表示Query与该维度聚集的那些term相关度高 2Bob 上次那个Bob 跑来感谢你 上一次建ccer网页库的invertedindex 查询效果很好 谈话间 Bob问 听说现在LanguageModel很popular 你建的invertedindex可以用来支持LM吗 你觉得呢 答案要点 可以用来支持LM 但只能支持UnigramLanguageModel 因为无法计算term之间的条件概率 可以给出语言模型的公式 对于公式中的参数 说明如何得到 或者如何计算 P w d Pmle w Md
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环保产业高级管理人员竞业禁止与商业秘密保护合同
- 离婚协议书字号及财产分割及子女抚养协议书
- 离婚协议公证办理过程中的法律援助与支持合同
- 离婚协议范本:离婚后财产保全与临时分割执行协议
- 《数据中心装修合同签订与信息技术安全》
- 离婚后共同财产分割与债务分担协议
- 2025年护士在职考试试题及答案
- 2025年青岛中考对联题库及答案
- 2025年初中政治阅读题库及答案
- 2025-2030动力总成电气化转型背景下零部件供应商突围路径报告
- 2025年移动初级解决方案经理认证理论考试指导题库-下(多选、判断题)
- (正式版)JBT 9229-2024 剪叉式升降工作平台
- 推广普通话课件
- GB/T 16714-2007连续式粮食干燥机
- 五年级《欧洲民间故事》知识考试题库(含答案)
- 派车单(标准样本)
- 少先队大队委申请表
- 浦东机场手册
- 柴油机负荷特性曲线比较课件
- 《认识液体》-完整版PPT
- 《跳长绳绕“8”字跳绳》教学设计-小学《体育与健康》(水平二)四年级上册-人教版
评论
0/150
提交评论