利用urllib的robotparser,我们可以实现网站Robots协议的分析。
1.robots协议
Robots协议用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不能抓取。它通常是一个叫作robots.txt的文本文件,一般放在网站的根目录下。
User-agent:*
Disallow:/
Allow:/public/
这实现了只允许爬取public目录的功能,将上述内容保存为robots.txt文件。放在网站的根目录下,和网站的入口文件(如index.php、index.html和index.jsp等)放在一起。
上面的User-agent 描述了搜索爬虫的名称,这里将其设置为*则代表该协议对任何爬取爬虫有效。
User-agent:Baiduspider
这就代表我们设置的规则对百度爬虫是有效的。
Disallow 制定了不允许抓取的目录,上例设置为/代表不允许抓取所以页面。
Allow一般和Disallow一起使用,用来排除某些限制。上例设置为/public/,则表示所有页面不允许抓取,但可以抓取public目录。
只允许某一个爬虫访问的代码如下:
User-agent:WebCrawler
Disallow:
User-agent:*
Disallow:/
2.爬虫名称
百度的是BaiduSpider,谷歌的是Googlebot,360搜索的是360Spider,有道的是YodaoBot,Alexa的是is_archiver,altavista的是Scooter。
3.robotparser
该模块提供了一个类