`

nutch 处理robots.txt原理

 
阅读更多

形如大多SE一样,在bot搜寻过程中会检查网站robots.txt 文件,以便是否设置了针对自己的rules。

 

一.robots.txt常识

由于robots.txt是一个协议而不是规范,所以不同的SE会有自己的实际处理规则。nutch也一样。

看看它是怎样书写的:
      User-agent: unhipbot
      Disallow: /

      User-agent: webcrawler
      User-agent: excite
      Disallow:

      User-agent: *
      Disallow: /org/plans.html     #一般情况下,开头相同的url,较长的优先级较高
      Allow: /org/                    #优先级较低
      Allow: /serv
      Allow: /~mak

 

常规情况下的解析:
  unhipbot不允许访问此站下的所有url;but
        webcrawler&excite可以访问所有urls;but
        所有其它的robot不可以访问plans.html但可以访问/org/,/serv,/~mark开头的urls

 

注意user-agent为*时的情况,这是所有其它 user-agent的通配符表示,当没有其它过其它user-agent时,它是作用于所有bots,但这里明显作用了除unhibot,webcrawler,excite外的bots,因为如果将unhibot也归入*的话,那么就会有矛盾,如:

unhibot定义了全額拒绝访问,但在*下又定义了几个Allow,这样在前后不一致了。

 

另外,不同的bots也有支持rules不同的情况,有些支持正则。

rule后有没有'/'是完全不同的;

 

 

二.nutch处理robots.txt的特点:

nutch内部维护了一个http.robots.agents属性,此属性可以定义多个bot name,并以优先级递降的顺序排列。

 

1.不支持rules有通配符,只支持Url字串的正向匹配。如果需要这点可以自己修改即可;

2.支持Allow和Crawl-Delay;

3.nutch允许定义多个bot name,但如果robots.txt中有多个匹配时,只会取出第一个bot name的rules,其它忽略。这就是为什么nutch中强烈建议将http.agent.name放在agents的前面的原故;

4.如果不存在robots.txt或Disallow/Allow的值为空时,表明整站是crawlable;

5.不考虑url长短的优先级

 

references:

robots.txt

ntuch#RobotRulesParser.java

 

 

 

 

 

分享到:
评论

相关推荐

    apach-nutch-1.9-bin.tar.gz

    8. **安全与合规**:在使用Nutch时,必须遵守robots.txt协议,尊重网站的抓取规则,同时注意不要违反任何法律法规,尤其是在抓取敏感或版权内容时。 总之,"apach-nutch-1.9-bin.tar.gz" 提供了一个完整的搜索引擎...

    apache-nutch-1.4-bin.tar.gz

    它通过种子URL开始,然后遍历网页,遵循robots.txt协议,尊重网站的抓取规则。 2. **抓取模块(Fetcher)**:负责下载网页内容。它会根据爬虫生成的待抓取URL队列,以合理的速率下载页面,避免对服务器造成过大的...

    nutch2.2.1

    - **URL过滤**: 使用robots.txt协议来决定是否抓取某个网页,以及URL重写规则。 在解压`nutch-branch-2.2.1`后,你可以看到以下目录结构: - `src`: 源代码目录,包含了所有Nutch的Java源码。 - `conf`: 配置文件,...

    nutch网页爬取总结

    5. **安全抓取**:Nutch 可以遵循 robots.txt 规则,尊重网站的抓取限制,避免对目标网站造成压力。 Nutch 的强大之处在于其模块化的设计,允许用户根据实际需求定制和扩展。通过熟练掌握 Nutch 的使用,你可以建立...

    nutch-2.1源代码

    Nutch的爬虫模块还包含了处理重定向、robots.txt规则和避免重复抓取同一页面的功能。 2. **HTML解析与预处理**:Nutch抓取的网页会被解析成DOM结构,以便提取有用的内容,如文本、链接等。预处理步骤包括去除HTML...

    nutch入门学习

    - **爬行“官方”网址**:针对官方网站进行抓取,注意遵守 robots.txt 规则。 - **爬行中文网址**:需要额外配置支持中文编码和中文网页的解析。 #### 4. Nutch 基本原理分析 ##### 4.1 Nutch 的基本组成 Nutch ...

    Nutch使用总结 信息检索 建立索引 搜索引擎

    通过学习Nutch,不仅可以了解搜索引擎的基本运作机制,还可以掌握Web抓取、信息处理和索引构建等相关技术,这对于从事信息检索、数据分析或者大数据处理等领域的工作非常有帮助。在实际操作中,可以根据项目需求定制...

    HW1.1-PB15111604金泽文1

    其次,Nutch是另一个基于Java开发的开源爬虫,它与Google搜索引擎的工作原理相似,采用了Hadoop的分布式处理模型。Nutch分为抓取和搜索两大部分,能够将数据存储在HBase、Cassandra、MySql等多种数据库中。通过其...

    Crawler.zip

    11. **爬虫道德与法规**:在进行网络爬虫时,必须遵守网站的robots.txt规则,并尊重数据隐私和版权法律。 这个压缩包"crawler"可能包含了源代码、配置文件、示例数据或文档,可以作为学习和实践网络爬虫技术的基础...

    Heritrix—开发自己的搜索引擎

    8. **道德与法规**:使用Heritrix进行网页抓取时,必须遵守robots.txt文件的规定以及相关法律法规,尊重网站的版权和隐私政策,避免对目标服务器造成过大的负担。 总的来说,Heritrix为开发者提供了一个强大且灵活...

    Java搜索及网页爬虫视频教程.zip

    在网页爬虫部分,我们还将讨论如何处理反爬机制,如验证码和robots.txt文件。你将学习到如何设置延迟以避免被网站封禁,以及如何使用User-Agent模拟不同的浏览器来提高爬虫的存活率。 此外,课程可能还会涵盖数据...

    搜索链接Java网络爬虫(蜘蛛)源码-zhizhu.zip

    9. **爬虫伦理与法规**:最后,要注意遵循网站的robots.txt协议,尊重网站的版权,不进行非法抓取,遵守法律法规,确保网络爬虫的使用是合法且道德的。 通过研究这个"搜索链接Java网络爬虫(蜘蛛)源码_zhizhu"压缩包...

    网络游戏-基于高实时分布式网络的爬虫软件设计与实现.zip

    6. **法律与道德问题**:爬虫操作必须遵守法律法规,尊重网站的robots.txt文件规定,避免侵犯用户隐私,确保数据采集的合法性。 7. **性能优化**:包括合理调度爬虫任务,避免对目标服务器造成过大的压力;使用高效...

    网络爬虫JAVA

    7. **避免被封禁**:在爬取网站时,需要注意遵守网站的robots.txt文件规定,限制爬取频率,设置User-Agent,避免IP被封禁。必要时可以使用代理IP池。 8. **异常处理与重试机制**:网络爬虫在运行过程中可能会遇到...

    java爬虫抓取网页内容,下载网站图片

    我们需要模拟浏览器行为,如设置合适的User-Agent,使用代理IP池,以及遵守网站的robots.txt规则。 3. **异步处理**:为了提高效率,我们可以使用多线程或异步编程来并发处理请求。Java 8引入了 CompletableFuture...

    网络爬虫Heritrix1.14.4可直接用

    8. **安全性与伦理**:使用Heritrix进行网络爬虫时,必须遵守网站的robots.txt规则,并尊重网站的版权。此外,合理的设置爬取速率和并发数,避免对目标服务器造成过大的压力。 9. **扩展与定制**:Heritrix是用Java...

    [搜索链接]Java网络爬虫(蜘蛛)源码_zhizhu.zip

    10. **爬虫伦理**:了解并遵守robots.txt协议,尊重网站的爬虫规则,避免对目标网站造成过大的负担。 这个源码包是一个很好的学习资源,涵盖了网络爬虫开发的多个方面,适合Java开发者深入理解和实践网络爬虫的开发...

    网络机器人java编程指南

    在编写爬虫时,我们还需要关注反爬策略和遵守robots.txt协议。网站所有者可能会设置各种限制来防止被过度爬取,因此我们需要识别和尊重这些规则。此外,适当的延迟设置和用户代理模拟也是礼貌爬取的重要方面。 对于...

Global site tag (gtag.js) - Google Analytics