• 《信息检索导论》第二十章总结


     

    一、Web采集介绍

    Web采集是从Web中采集大量网页的过程,并且要避免采集重复或无用的页面,采集完的网页需要构建索引,以扩大搜索引擎的索引规模;

    web采集通常是由多台机器并行采集;

     

    web采集的必须功能

    (1)Web采集器需要识别采集器陷阱(spider traps),比如当采集器访问到某个web服务器的网页时,此网页会生成无限多个网页被采集器采集,从而使得采集器不能跳出;

    (2)web服务器都有一个政策,比如服务器每5秒只能访问一次,因此采集器必须遵循这些规则;

     

    web采集的可选功能

     

    1.分布式:采集器有多个节点;

    2.即时更新:将原始抓取的网页进行更新;

    3.功能可扩展性:可以增加协议;

     

    二、Web采集流程

     

    web采集过程类似于遍历web图的过程;

    1.设定一个或多个URL作为种子集合,并放入URL等待池;

    2.抽取URL:在URL池中取出一个URL,并在URL池中删除这个URL(如果是连续式采集,则可以不用删,因为以后还会采集此URL进行页面更新);

    3.采集网页;

    4.分析网页,并抽取出文本和链接,文本放入索引器,链接首先检查是否已被采集、是否内容相同、是否满足robots.txt文件,如果未被采集、内容不同、满足robot,则放入URL等待池(URL Frontier)(通过shingle方法判断内容重复),等待被采集;

    对于连续式采集,抽取URL后不一定要删除URL池中的,因为以后还会被采集;

    Content Seen处理内容重复;

    URL Filter处理robots文件的问题;

    URL duplication处理URL已采集问题;

    web采集器的模块

    (1)URL池;

    (2)DNS解析器;

    (3)抓取模块;

    (4)分析模块;

    (5)URL去重模块;

    web服务器通过拒绝蜘蛛协议(robot exclusion protocol)对采集器进行限制,通过在web目录下放置robots.txt;

    在访问web服务器的页面之前,必须先抓取robots.txt文件,放入缓存(加快速度);

    注意:在判定URL是否放入URL池的时候就需要去抓取robots.txt判定,在真正抓取页面之前必须访问robots.txt文件进行判定,因为放入URL池后,robots文件可能会改变;

    在URL池取出URL的时候需要考虑不能一直返回相同Web服务器的URL,礼貌问题;

     

    以上是前端队列,当URL放入URL池时,会分配一个优先级,并放入特定的队列;

     

    上图是后端队列,每个队列对应一个主机;

    需要保证在采集时后端队列的每个队列不能为空;

    Heap的每个元素对应一个后端队列,表示一个web服务器所能再次被访问的最早时间;

    分布式web采集

     

    有多个采集器,分布在世界各地;每个采集器

    采集器和原来差不多,只是多了主机划分器,并且URL查重模块需要接收其他机器发来的URL;

    Host Splitter是主机划分器,宗旨是采集器需要采集的网页是地理位置相邻的web服务器的网页,因此需要有这个主机划分器进行分配URL;

    DNS(Domain Name Service)服务器:用来将URL解析成IP的机器;

    DNS解析:将URL解析成IP地址;

    DNS服务器通常会有多个,因此是分布式的;

    DNS解析的时间很长,所以可以通过DNS缓存加快速度;

    作者:xiazdong
    出处:http://blog.xiazdong.info
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  • 相关阅读:
    ASP.NET MVC路由规则
    VS2013 修改TFS的本地映射路径
    新安装的VS的一些设置
    ASP.NET MVC验证标注的扩展-checkbox必选
    进入做Mvc项目的时候 返现某个文件夹下面css js png等静态文件都访问不了
    Mac入门 (二) 使用VMware Fusion虚拟机
    Mac入门(一)基本用法
    软件测试面试 (二) 如何测试网页的登录页面
    软件测试面试 (一) 如何测试一个杯子
    Python自动化测试 (二) ConfigParser模块读写配置文件
  • 原文地址:https://www.cnblogs.com/xiazdong/p/3058351.html
Copyright © 2020-2023  润新知