全部博文(118)
分类: C/C++
2008-05-30 17:40:55
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
评分规则