Chinaunix首页 | 论坛 | 博客
  • 博客访问: 339873
  • 博文数量: 10
  • 博客积分: 4010
  • 博客等级: 上校
  • 技术积分: 2445
  • 用 户 组: 普通用户
  • 注册时间: 2006-11-25 17:47
文章分类

全部博文(10)

文章存档

2008年(10)

我的朋友

分类: C/C++

2008-05-28 18:57:37

2. Robots.txt协议

搜索引擎是靠Web Robot(又称Spider)来收集互联网上浩如烟海的网页的。Spider就像一个旅行家一般,不知疲倦地奔波于万维网的空间,将遇到的页面收集下来供搜索引擎索引。对于一个网站的管理员来说,如果想指定某些不希望搜索引擎访问的内容,该如何去做呢?他需要的就是Robots Exclusion Protocol协议,这里简单的称它做Robots.txt协议。

Robots.txt是一个放置在网站根目录下的纯文本文件。举例来说,当Spider访问一个网站(比如)时,首先会检查该网站中是否存在/robots.txt这个文件,如果Spider找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围。

是robots.txt协议的Home Page,在这个站点上你可以找到很多robots.txt协议相关的资料。Robots.txt协议在()上有比较详尽的描述。

你的任务就是编写Spider中的一个逻辑单元,用来判断一个网站的一些URL是否被禁止抓取。对方网站的站点在这里假设是,这个Spider的User-agent当然是Baiduspider。注意,这个逻辑单元除了本身的判断逻辑要求与robots.txt协议一致外,还要注意容错的问题。互联网上纷繁芜杂,会出现很多意想不到的错误。如何能够对一个对错参半的robots.txt进行解析,把其中正确的挑拣出来、把错误的部分忽略掉,也是一个不小的挑战哦。都会遇到什么错误?在开始爬行互联网之前,谁都不知道。在本题中,你的程序应当逐一对robots.txt的各行进行处理,忽略所有格式错误或者非期望的行。

输入格式
第一行是一个非负整数m,表示robots.txt文件的行数,后面跟m行,是robots.txt的全文。下一行包含一个非负整数n, 表示URL的行数,后面跟n行URL,这个就是你要判断的URL的列表。robot.txt中可能有错误,但所有URL均合法。

输出格式
每条URL输出一行,每行两列,第一列是一个数字,如果这条URL被禁止,则输出0,否则输出1。第二列是这条URL本身。两部分以一个空格隔开。

样例输入
2
User-agent: *
Disallow: /tmp/
2
/index.html
/tmp/somepage.html

样例输出
1 /index.html
0 /tmp/somepage.html

评分规则

  1. 程序将运行在一台Linux机器上(内存使用不作严格限制),在每一测试用例上运行不能超过1秒,否则该用例不得分;
  2. 要求程序能按照输入样例的格式读取标准输入数据,按照输出样例的格式将运行结果输出到标准输出上。如果不能正确读入数据和输出数据,该题将不得分;
  3. 本题包含20个测试点,均满足0<=n,m<=100。本题每个测试点10分,共200分。
阅读(656) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~