`
neilone.cn
  • 浏览: 21797 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Heritrix取消robots.txt

    博客分类:
  • j2ee
阅读更多

      Robots.txt是一种用于限制网络爬虫的文件,如果在构建网站时,在站点内放置一个Robots.txt文件,在其中可以声明不希望搜索引擎访问的部分。然而,这也是Heritrix爬虫在抓取网页时花费过多的时间去判断该Robots.txt文件是否存在。。。好在这个协议本身是一种附加协议,完全可以不遵守。

    在Heritrix的org.archive.crawler.prefetch.PreconditionEnforcer类中定义了获取Robots.txt的方法,我的选择是无论Robots.txt是否存在,都返回不存在,修改方法如下

    private boolean considerRobotsPreconditions(CrawlURI curi) {
    	//此处为提高抓取效率,将忽略Robots.txt协议
    	return false;
        // treat /robots.txt fetches specially
        /*UURI uuri = curi.getUURI();
        try {
            if (uuri != null && uuri.getPath() != null &&
                    curi.getUURI().getPath().equals("/robots.txt")) {
                // allow processing to continue
                curi.setPrerequisite(true);
                return false;
            }
        }
        catch (URIException e) {
            logger.severe("Failed get of path for " + curi);
        }
        // require /robots.txt if not present
        if (isRobotsExpired(curi)) {
        	// Need to get robots
            if (logger.isLoggable(Level.FINE)) {
                logger.fine( "No valid robots for " +
                    getController().getServerCache().getServerFor(curi) +
                    "; deferring " + curi);
            }

            // Robots expired - should be refetched even though its already
            // crawled.
            try {
                String prereq = curi.getUURI().resolve("/robots.txt").toString();
                curi.markPrerequisite(prereq,
                    getController().getPostprocessorChain());
            }
            catch (URIException e1) {
                logger.severe("Failed resolve using " + curi);
                throw new RuntimeException(e1); // shouldn't ever happen
            }
            return true;
        }
        // test against robots.txt if available
        CrawlServer cs = getController().getServerCache().getServerFor(curi);
        if(cs.isValidRobots()){
            String ua = getController().getOrder().getUserAgent(curi);
            if(cs.getRobots().disallows(curi, ua)) {
                if(((Boolean)getUncheckedAttribute(curi,ATTR_CALCULATE_ROBOTS_ONLY)).booleanValue() == true) {
                    // annotate URI as excluded, but continue to process normally
                    curi.addAnnotation("robotExcluded");
                    return false; 
                }
                // mark as precluded; in FetchHTTP, this will
                // prevent fetching and cause a skip to the end
                // of processing (unless an intervening processor
                // overrules)
                curi.setFetchStatus(S_ROBOTS_PRECLUDED);
                curi.putString("error","robots.txt exclusion");
                logger.fine("robots.txt precluded " + curi);
                return true;
            }
            return false;
        }
        // No valid robots found => Attempt to get robots.txt failed
        curi.skipToProcessorChain(getController().getPostprocessorChain());
        curi.setFetchStatus(S_ROBOTS_PREREQUISITE_FAILURE);
        curi.putString("error","robots.txt prerequisite failed");
        if (logger.isLoggable(Level.FINE)) {
            logger.fine("robots.txt prerequisite failed " + curi);
        }*/
        //return true;
    }
 

 

分享到:
评论

相关推荐

    heritrix-1.14.4.zip 和 heritrix-1.14.4-src.zip

    策略定义了爬虫的行为规则,比如遵循或不遵循robots.txt,或者如何处理重定向。处理器则处理每个页面的具体细节,如提取链接、解析内容等。最后,存储器负责保存抓取到的数据,可能包括本地硬盘、数据库或者远程...

    Heritrix-1.4.4.src.zip +Heritrix-1.4.4.zip

    - 法律和道德考虑:遵守网站的robots.txt文件规定,尊重网站的抓取策略,避免对目标网站造成过大的负载。 总的来说,Heritrix-1.4.4是用于构建自定义网络抓取应用的强大工具,结合MyEclipse可以提供一个便捷的开发...

    heritrix-1.14.2.zip

    Heritrix 1.14.2 是一个开源的网络爬虫工具,它主要用于抓取互联网上的网页和其他在线资源。这个版本的Heritrix在2007年左右发布,虽然较旧,但它仍然是理解网络爬虫技术的一个重要参考。 Heritrix是一个由Internet...

    heritrix-1.12.1.zip

    Heritrix是一款强大的开源网络爬虫工具,由互联网档案馆(Internet Archive)开发并维护,主要用于大规模网页抓取。在“heritrix-1.12.1.zip”这个压缩包中,用户可以找到Heritrix的1.12.1版本的源代码和其他相关...

    heritrix系统使用.ppt

    4. **Politeness**:这是Heritrix遵循的一种网络礼貌原则,即在抓取过程中,尊重网站的Robots协议,避免过于频繁的请求,以免对目标服务器造成过大的负担。这通过设置延迟时间和重试策略来实现。 Heritrix的灵活性...

    heritrix-1.12.1

    "heritrix"是软件的名称,而"robot"则暗示了Heritrix在网络中的角色类似于网络机器人或蜘蛛,遵循robots.txt协议,尊重网站的抓取规则。 压缩包中的文件名"heritrix-1.12.1"可能包含了Heritrix的源代码、编译后的二...

    Heritrix 3.x 用户手册

    Heritrix 3.x 是一个开源且高度可扩展的网络爬虫工具,旨在按照robots.txt文件的规则和META robots标签来规范地抓取互联网资源。它由Internet Archive(IA)开发,目标是创建一个用于构建网络数字图书馆的全网归档...

    开发自己的搜索引擎 Lucene+Heritrix.pdf.part2

    开发自己的搜索引擎-Lucene+Heritrix>>完整版 pdf 文档,共分为两个压缩文件,请全部下载解压。

    整合资源jsmartco_zh_CN+je-analysis-1.4.0+lucene-core-2.0.0+heritrix.14.4.

    标题中的“jsmartco_zh_CN+je-analysis-1.4.0+lucene-core-2.0.0+heritrix.14.4”表明这是一个关于搜索引擎开发的资源集合,主要包括了jsmartco中文版、je-analysis 1.4.0、lucene核心库2.0.0以及Heritrix爬虫14.4...

    heritrix3-master.zip

    Heritrix是一个开源,可扩展的web爬虫项目。用户可以使用它来从网上抓取想要的...Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。

    heritrix-1.14.4-docs.rar

    10. **合规性和道德规范**:Heritrix支持robots.txt协议,尊重网站的爬虫规则,并提供设置以避免对服务器造成过大的负载。 通过阅读"docs"目录下的文档,用户能够深入理解Heritrix的各个方面,从基本概念到高级技巧...

    Heritrix 配置

    Heritrix.properties文件中的其他配置项也很重要,例如`heritrix.jobsdir`定义了工作目录,`heritrix.cmdline.run`、`heritrix.cmdline.nowui`等决定了Heritrix的启动行为。这些配置可以按照需求进行调整。 最后,...

    web爬虫Heritrix.zip

    Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。 Heritrix是一个爬虫框架,其组织结构如图2.1所示,包含了整个组件和抓取流程:...

    网络爬虫.txt

    - **启动Heritrix**:打开命令行界面,导航至Heritrix解压后的目录,运行`java -jar heritrix.jar`命令启动服务。 ### 知识点三:Heritrix基本使用流程 #### 1. 创建新任务 - 在Heritrix主界面上创建一个新的爬取...

    网络爬虫Heritrix1.14.4可直接用

    3. **Heritrix运行与配置**:在`Heritrix1/src/org/archive/crawler/Heritrix.java`文件中启动Heritrix后,服务会在本地的8089端口监听。通过访问`https://localhost:8089`,我们可以使用内置的Web管理界面进行配置...

    heritrix正确完整的配置heritrix正确完整的配置

    安装完成后,通过命令行启动Heritrix,如在Java环境中使用`java -jar heritrix.jar`。 2. **配置文件结构**: Heritrix的配置基于XML文件,主要包含`job.xml`(作业配置)、`engine.xml`(引擎配置)和各种模块的...

    heritrix爬虫安装部署

    - 修改`heritrix.properties`中的相关配置,如`heritrix.cmdline.admin`。 - 运行Heritrix应用并验证功能。 #### 三、Heritrix工作原理 Heritrix的工作原理基于深度优先搜索算法,其核心流程包括: 1. **爬取任务...

Global site tag (gtag.js) - Google Analytics